导航菜单

重磅干货!如何使用Stata软件检测文章抄袭 | 社论前沿

三天前,在这篇社论的最前面,我想分享

Abstract:这次,我们引入了lsemantica命令,它可以在Stata中实现潜在的语义分析。潜在语义分析(LSA)是一种用于单词和文本相似性比较的机器学习算法。lsemantica为LSA提供简单的命令,为文本相似性比较提供补充命令。

这是编辑前沿的S1468推

潜在语义分析

两个文本文档之间的语义相似度是一个非常有用的度量。例如,知道两个文档具有相似的内容或含义有助于识别同一作者的文档、测量信息的传播或检测剽窃。

当试图识别具有相似含义的文档时,有两个主要问题。首先,同一个单词在不同的上下文中可以有不同的意思。第二,不同的单词在其他上下文中可以有相同的意思。因此,仅使用文档中的单词作为相似性度量是不可靠的。对于数百个文档来说,阅读和手动编码文档已经成为禁忌。

潜在语义分析(LSA)通过为单词和文本提供可靠的语义相似性度量来解决这个问题。LSA是迪尔维斯特等人为了满足自动信息检索的任务而开发的。在搜索查询中,理解单词的关系和含义很重要,因为仅使用查询术语通常会导致不满意的搜索结果。

LSA通过考虑单词关系和潜在的多重含义来提高结果。正是这一属性使LSA适合各种任务,包括:

1.单词相似度

2。文本相似度

3。计算机指导的抽象写作

4。自动纸张评分

5。对于所有这些应用,LSA通过使用截断奇异值分解推导出单词和文档之间隐藏的语义链接。同样,截断奇异值分解使LSA能够通过分解“语义空间”来“学习”单词之间的关系。这一过程使LSA能够准确判断文本的含义。LSA使用单词同现,而LSA可以推断单词之间更深层次的关系。

lsemantica命令提供了在Stata中使用LSA的解决方案。LSEMATICA使用lsemantica_余弦命令进一步简化Stata中的文本相似性比较。这样,lsemantica进一步提高了Stata的文本分析能力。

Stata已经允许使用strdist命令计算Levenshtein的编辑距离,txttool命令有助于清理和标记文本数据。此外,ldagibbs命令允许潜在的Dirichlet分配在Stata中运行。虽然ldagibbs可以按相似的主题将文档组合在一起,但是如果人们主要对文档的相似性感兴趣,lsemantica更可取。

对于lsematica,用户想要为LSA使用的每一个文档都应该是数据集中的一个观察结果。如果文档由成千上万个单词组成,用户可以将文档分成更小的部分,如段落,以分别处理每个部分。无论如何,文本字符串应该只使用一个变量。此外,应该从字符串中删除非字母数字字符。

lsemantica命令是通过指定包含文本的变量开始的。有一个选项可以截断奇异值分解的分量数量。lsemantica选项还允许从文本字符串中删除stopword和short words。Txttool命令提供了更高级的文本清理选项。Lsemantica还提供了两个选项来缩小词汇量。当截断奇异值分解由于词汇表的大小而花费很长时间时,这些选项很有用。

1。命令格式

2。选项解释

components(整数)指定语义空间应该从lsemantica减少的组件数量。组件的数量通常是根据词汇表的大小来选择的。默认值是组件(300)。

tfidf指定在应用截断奇异值分解之前是否应该重新加权tfidf。在大多数情况下,tfidf的重新加权将改善结果。

min_char(整数)允许从文本中删除短单词。小于最小字符(整数)的单词将被排除在LSA之外。默认值为min_char(0)。

Stopwords(字符串)指定要从lsemantica中排除的单词列表。一般来说,诸如“我”和“你”这样经常出现的词会从文本中删除,因为这些词对文档的含义没有什么贡献。在线提供不同语言的预定义停止列表。

min_freq(整数)允许删除出现在较少文档中的单词。出现在小于最小频率(整数)的文档中的单词将被排除在LSA之外。默认值为min_freq(0)。

max_freq(real)允许删除文档中经常出现的单词。文件中出现的超过最大频率(实数)的词将被排除在LSA之外。默认值为max_freq(1)。

name_new_var(字符串)指定由lsemantica创建的输出变量的名称。这些变量包含每个文档的组件。用户应该确保new_var(字符串)在数据集中是唯一的。默认情况下,变量的名称是组件,因此新变量的名称将是组件_ 1-组件C,其中C是组件的数量。

Mat_save指定是否应该保存单词组件矩阵。这个矩阵描述了单词之间的语义关系。默认情况下,不保存矩阵。

path(string)设置保存单词组件矩阵的路径。

3。结果输出

lsemantica生成新变量,这些变量是截断奇异值分解生成的分量。如前几节所述,这些组件捕获文档的语义关系,并允许计算文档之间的相似性。

基于LSA的文档相似性通常通过每个文档的分量向量的余弦相似性来测量。余弦相似性是相关系数的非中心形式。对于高度相似的文档,余弦相似度为1,而对于完全不同的文档,余弦相似度为?1 .当使用LSA时,余弦相似度通常在单位区间内。余弦相似度仅适用于不同高度的文档。

lsemantica还提供lsemantica _余弦命令,以便于余弦相似性分析。lsemantica _余弦计算所有文档的余弦相似度,并将其存储在Mata中。3此外,lsemantica _余弦可以提供余弦相似度的汇总统计,并找到高度相似的文档。

样本分析

样本数据集包含1980年至2016年间在经济期刊上发表的41,349篇文章的标题。加载数据后,将从标题字符串中删除非字母数字字符,为LSA做准备。

(温馨提示:点击查看大图)

只需调用lsemantica命令即可启动LSA。

首先,lsemantica准备文档并生成文档术语矩阵。Lsemantica还从数据中删除少于4个字符的单词和出现在少于10个文档或超过一半文档中的单词。此外,stopword已从数据中删除。然后使用TFIDF重新加权生成的文档术语矩阵。

每次处理10%的词汇时,该命令都会报告。

如果文档在文本清理后没有留下任何单词,lsemantica将从数据中删除这些观察值,因为它们会干扰截断的奇异值分解。Lsemantica报告哪些文档已从数据中删除,以及词汇表的大小。在本例中,删除了167个文档。文档的删除主要是由于选项min_freq(10)的影响。

接下来,lsemantica计算截断奇异值分解,这需要大量计算,可能需要一些时间。在某些情况下,Stata在此过程中变得无反应。截断奇异值分解所需的时间随着文档术语矩阵的大小而增加,从而随着文档的数量和词汇表的大小而增加。LSEMATICA运行完成后,您可以通过使用lsemantica _余弦命令计算组件向量之间的余弦相似度来开始分析文档的相似度。由于维度的原因,生成的余弦相似矩阵存储在Mata中。如有必要,您可以使用getMata(余弦*)=余弦_sim在lsemantica _余弦命令之后从Mata中检索完整的余弦相似矩阵。Lsemantica _余弦还允许计算平均相似度以及与其他文章标题的最大和最小相似度。

此外,lsemantica余弦可以为数据中的每篇文章找到最相似的文章。在本例中,计算了10篇最相似的文章。之后,列出了数据中第一篇文章的五个最相似的文章标题。可以看出,在所有关于劳动力供给的文章中,LSA准确地识别了高度相似的文章。

最后,lsemantica可以比较语义关系和词的相似性。使用LSEMATICA _ WORD _ COMP,可以导入LSEMATICA存储的单词成分矩阵。同样,lsemantica _余弦可以用来计算数据中单词之间的余弦值,并找到最相似的单词。这个例子表明,lsemantica认识到“劳动”、“权力”、“分割”、“分工”、“摩擦”和“垄断”这些词是相互关联的。

knot

LSA已被证明是一种常见的文本分析算法。LSEMATICA将LSA引入Stata,可以帮助研究人员使用lsemantica _余弦命令更准确地测量文本文档的相似度。因此,lsemantica为Stata中的文本数据分析开辟了一种新的方法。虽然以上例子是基于英文文章,但它们也适用于中文文章并对其有所启发。

文献来源:

Schwarz,C. (2019年)。基于潜在语义分析的文本相似度命令。《斯塔塔日报》,19 (1),129-142。

文献编辑,唐彬彬

美国编辑,唐彬彬编辑,张立静

[编辑前沿招聘]点击此处加入我们!

收集报告投诉

摘要:本文介绍了lsemantica命令,它可以在Stata中实现潜在的语义分析。潜在语义分析(LSA)是一种用于单词和文本相似性比较的机器学习算法。lsemantica为LSA提供简单的命令,为文本相似性比较提供补充命令。

这是编辑前沿的S1468推“潜在语义分析”,两个文本文档之间的语义相似度是一个非常有用的度量。例如,知道两个文档具有相似的内容或含义有助于识别同一作者的文档、测量信息的传播或检测剽窃。

当试图识别具有相似含义的文档时,有两个主要问题。首先,同一个单词在不同的上下文中可以有不同的意思。第二,不同的单词在其他上下文中可以有相同的意思。因此,仅使用文档中的单词作为相似性度量是不可靠的。对于数百个文档来说,阅读和手动编码文档已经成为禁忌。

潜在语义分析(LSA)通过为单词和文本提供可靠的语义相似性度量来解决这个问题。LSA是迪尔维斯特等人为了满足自动信息检索的任务而开发的。在搜索查询中,理解单词的关系和含义很重要,因为仅使用查询术语通常会导致不满意的搜索结果。

LSA通过考虑单词关系和潜在的多重含义来提高结果。正是这个属性使LSA适合各种任务,包括:

1。单词相似度

2。文本相似度

3。计算机指导的抽象写作

4。自动纸张评分

5。评估文本一致性

对于所有这些应用,LSA通过截断奇异值分解推导出单词和文档之间隐藏的语义关系。同样,截断奇异值分解使LSA能够通过分解“语义空间”来“学习”单词之间的关系。这一过程使LSA能够准确判断文本的含义。LSA使用单词同现,而LSA可以推断单词之间更深层次的关系。

lsemantica命令提供了在Stata中使用LSA的解决方案。LSEMATICA使用lsemantica_余弦命令进一步简化Stata中的文本相似性比较。这样,lsemantica进一步提高了Stata的文本分析能力。

Stata已经允许使用strdist命令计算Levenshtein的编辑距离,txttool命令有助于清理和标记文本数据。此外,ldagibbs命令允许潜在的Dirichlet分配在Stata中运行。虽然ldagibbs可以按相似的主题将文档组合在一起,但是如果人们主要对文档的相似性感兴趣,lsemantica更可取。

Stata软件操作

对于lsematica,用户想要为LSA使用的每一个文档都应该是数据集中的一个观察值。如果文档由成千上万个单词组成,用户可以将文档分成更小的部分,如段落,以分别处理每个部分。无论如何,文本字符串应该只使用一个变量。此外,应该从字符串中删除非字母数字字符。

lsemantica命令通过指定包含文本的变量开始。有一个选项可以截断奇异值分解的分量数量。lsemantica选项还允许从文本字符串中删除stopword和short words。Txttool命令提供了更高级的文本清理选项。Lsemantica还提供了两个选项来缩小词汇量。当截断奇异值分解由于词汇表的大小而花费很长时间时,这些选项很有用。

1。命令格式

2。选项解释

components(整数)指定语义空间应该从lsemantica减少的组件数量。组件的数量通常是根据词汇表的大小来选择的。默认值是组件(300)。

tfidf指定在应用截断奇异值分解之前是否应该重新加权tfidf。在大多数情况下,tfidf的重新加权将改善结果。

min_char(整数)允许从文本中删除短单词。小于最小字符(整数)的单词将被排除在LSA之外。默认值为min_char(0)。

stopwords(字符串)指定要从lsemantica中排除的单词列表。一般来说,诸如“我”和“你”这样经常出现的词会从文本中删除,因为这些词对文档的含义没有什么贡献。在线提供不同语言的预定义停止列表。

min_freq(整数)允许删除出现在较少文档中的单词。出现在小于最小频率(整数)的文档中的单词将被排除在LSA之外。默认值为min_freq(0)。

Max_freq(实数)允许删除文档中经常出现的单词。文件中出现的超过最大频率(实数)的词将被排除在LSA之外。默认值为max_freq(1)。

name_new_var(字符串)指定由lsemantica创建的输出变量的名称。这些变量包含每个文档的组件。用户应该确保new_var(字符串)在数据集中是唯一的。默认情况下,变量的名称是组件,因此新变量的名称将是组件_ 1-组件C,其中C是组件的数量。

Mat_save指定是否应该保存单词组件矩阵。这个矩阵描述了单词之间的语义关系。默认情况下,不保存矩阵。

path(string)设置保存单词组件矩阵的路径。

3。结果输出

lsemantica生成新变量,这些变量是截断奇异值分解生成的分量。如前所述,这些组件捕获文档的语义关系,并允许计算文档之间的相似性。

基于LSA的文档相似度通常通过每个文档的分量向量的余弦相似度来测量。余弦相似性是相关系数的非中心形式。对于高度相似的文档,余弦相似度为1,而对于完全不同的文档,余弦相似度为?1 .当使用LSA时,余弦相似度通常在单位区间内。余弦相似度仅适用于不同高度的文档。

LSEMATICA还提供了lsemantica _余弦命令,以便于分析余弦相似性。lsemantica _余弦计算所有文档的余弦相似度,并将其存储在Mata中。3此外,lsemantica _余弦可以提供余弦相似度的汇总统计,并找到高度相似的文档。

样本分析

样本数据集包含1980年至2016年间在经济期刊上发表的41,349篇文章的标题。加载数据后,将从标题字符串中删除非字母数字字符,为LSA做准备。

(温馨提示:点击查看大图)

只需调用lsemantica命令即可启动LSA。

首先,lsemantica准备文档并生成文档术语矩阵。Lsemantica还从数据中删除少于4个字符的单词和出现在少于10个文档或超过一半文档中的单词。此外,stopword已从数据中删除。然后使用TFIDF重新加权生成的文档术语矩阵。

每次处理10%的词汇时,该命令都会报告。

接下来,lsemantica计算截断奇异值分解,这需要大量计算,可能需要一些时间。在某些情况下,Stata在此过程中变得无反应。截断奇异值分解所需的时间随着文档术语矩阵的大小而增加,从而随着文档的数量和词汇表的大小而增加。LSEMATICA运行完成后,您可以通过使用lsemantica _余弦命令计算组件向量之间的余弦相似度来开始分析文档的相似度。由于维度的原因,生成的余弦相似矩阵存储在Mata中。如有必要,您可以使用getMata(余弦*)=余弦_sim在lsemantica _余弦命令之后从Mata中检索完整的余弦相似矩阵。Lsemantica _余弦还允许计算平均相似度以及与其他文章标题的最大和最小相似度。

此外,lsemantica余弦可以为数据中的每篇文章找到最相似的文章。在本例中,计算了10篇最相似的文章。之后,列出了数据中第一篇文章的五个最相似的文章标题。可以看出,在所有关于劳动力供给的文章中,LSA准确地识别了高度相似的文章。

最后,lsemantica可以比较语义关系和词的相似性。使用LSEMATICA _ WORD _ COMP,可以导入LSEMATICA存储的单词成分矩阵。同样,lsemantica _余弦可以用来计算数据中单词之间的余弦值,并找到最相似的单词。这个例子表明,lsemantica认识到“劳动”、“权力”、“分割”、“分工”、“摩擦”和“垄断”这些词是相互关联的。

knot

LSA已被证明是一种常见的文本分析算法。LSEMATICA将LSA引入Stata,可以帮助研究人员使用lsemantica _余弦命令更准确地测量文本文档的相似度。因此,lsemantica为Stata中的文本数据分析开辟了一种新的方法。虽然以上例子是基于英文文章,但它们也适用于中文文章并对其有所启发。

文献来源:

Schwarz,C. (2019年)。基于潜在语义分析的文本相似度命令。《斯塔塔日报》,19 (1),129-142。

文献编辑,唐彬彬

美国编辑,唐彬彬编辑,张立静

[编辑前沿招聘]点击此处加入我们!