Nlp 如何根据预定义的语言类别衡量文档的不同程度?

Nlp 如何根据预定义的语言类别衡量文档的不同程度?,nlp,data-science,topic-modeling,cosine-similarity,word-embedding,Nlp,Data Science,Topic Modeling,Cosine Similarity,Word Embedding,我有三类词,分别对应不同类型的心理驱动(对权力的需求、对成就的需求和对归属的需求)。目前,对于我样本中的每个文档(n=100000),我使用一个工具来计算每个类别中的字数,并通过将原始字数转换为基于文本中使用的总字数的百分比来计算每个类别的比例分数 n-power n-achieve n-affiliation Document1 0.010 0.025 0.100 Document2 0.045

我有三类词,分别对应不同类型的心理驱动(对权力的需求、对成就的需求和对归属的需求)。目前,对于我样本中的每个文档(n=100000),我使用一个工具来计算每个类别中的字数,并通过将原始字数转换为基于文本中使用的总字数的百分比来计算每个类别的比例分数

                 n-power   n-achieve  n-affiliation
Document1        0.010      0.025      0.100  
Document2        0.045      0.010      0.050
:                :          :          :
:                :          :          :
Document100000   0.100      0.020      0.010

对于每个文档,我希望获得一个区分度的度量,该度量表示三个心理类别的文档内容与所有文档(即我样本中的原型文档)的平均内容的不同程度。有办法做到这一点吗?

本质上,您遇到的是一个集群问题。目前,您用3个数字表示每个文档,让我们将它们称为向量(实际上,您制作了一些嵌入)。你可以做你想做的事 1) 计算整个集合的平均向量。基本上,将每列中的所有数字相加,然后除以文档数。 2) 选择一个您喜欢的度量,它将反映文档向量与平均值的对齐情况。你可以使用(欧几里得) 或余弦 X将是您的文档向量列表,Y将是列表中的单个平均向量。这是一个很好的起点

若我这样做,我会忽略平均向量方法,因为你们实际上是在处理聚类问题。所以我会用 在这里看到更多


希望这有帮助

这是一个相当普遍的问题,并不完全清楚您想要什么作为输出。我的建议是检查quanteda包,你可以在quanteda.io上找到它。在三维向量的特定情况下,有没有理由选择余弦而不是欧几里德?我问的原因是,这两个相似性度量与我的数据中的其他变量具有非常不同的相关性。