【问题标题】:How to use Parts-of-Speech to evaluate semantic text similarity?如何使用词性评估语义文本相似度?
【发布时间】:2012-07-12 08:06:24
【问题描述】:

我正在尝试编写一个程序来评估文本之间的语义相似性。我已经比较了文本之间的 n-gram 频率(一种词汇量度)。我想要一些比这更浅的东西,并且我认为在句子构造中查看相似性将是评估文本相似性的一种方法。

但是,我所能做的就是计算词性(例如,每个文本 4 个名词、2 个动词等)。这类似于只计算 n-gram(实际上效果不如 ngram)。

postags = nltk.pos_tag(tokens)
self.pos_freq_dist = Counter(tag for word,tag in postags)
for pos, freq in self.pos_freq_dist.iteritems():
    self.pos_freq_dist_relative[pos] = freq/self.token_count    #normalise pos freq by token counts             

很多人(Pearsons、ETS Research、IBM、学者等)使用词性来进行更深入的衡量,但没有人说他们是如何做到的。如何将词性用于“更深入”的语义文本相似度测量?

【问题讨论】:

  • 无论如何,他们不能,不能靠他们自己。词性标签通常告诉你一些关于语法的东西,而不是关于语义的,所以它们在比较意义时不会有用。想想你从“猫”和名词中拿走了什么信息。知道两个文本包含动词是否可以告诉您它们在语义上是否相似?
  • 我也同意@aab。也许,POS 可以用作确定缺乏相似性(错误蕴涵)而不是相似性的启发式方法。但是这种方法的召回分数可能非常低,不会降低精度。

标签: python nlp nltk semantic-analysis


【解决方案1】:

需要更复杂的标记器,例如http://phpir.com/part-of-speech-tagging/。 您将需要编写算法并创建词库来确定句子的含义或意图。语义分析是人工智能。

名词和大写名词将成为内容的主题。形容词会暗示内容的极性。模糊,清晰,力量,弱点,使用的词语类型。无限可能。

【讨论】:

    【解决方案2】:

    请看the NLTK Book 的第 6 章。它应该为您提供大量关于可用于对文本进行分类的功能的想法。

    【讨论】:

      猜你喜欢
      • 2021-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-04
      • 2014-08-09
      • 2012-05-01
      相关资源
      最近更新 更多