【问题标题】:How do I use NLP to find which group of words a sentence is closes to?如何使用 NLP 来查找句子与哪组词最接近?
【发布时间】:2021-12-16 11:26:41
【问题描述】:

我正在尝试使用 NLP 来查看调查回复与预定类别的匹配程度。我不能使用普通的文本分类方法,因为给定的响应通常包含多个类别。

相反,我提取了每个类别中最常用的 10-20 个单词,并且我想构建一个脚本来输入调查响应并计算它与每个单词列表的对齐程度。理想情况下,我希望它也能识别与每个列表中相似的单词。最终结果应该是一个向量,描述响应与每组单词的对齐程度。

到目前为止,我唯一的想法是使用一个 for 循环来遍历响应中的每个单词,而每个组都有一个计数器,如果一个单词匹配,它就会上升。但是,这在处理同义词或类似词时没有用。有没有办法解决这个问题?

【问题讨论】:

  • SO 是针对编程问题的,您的问题更多是关于设计的,因此它更适合datascience.stackexchange.com。简短的回答:有很多可能性,最简单的是将单词视为一个集合并计算overlap coefficient。稍微高级一点,余弦与TFIDF vectors。比词嵌入更高级的相似性,以捕获语义相似性。

标签: nlp text-classification supervised-learning


【解决方案1】:

我没有 50 声望,所以我不能发表评论。但我认为如果你实现一个 sin 函数,你可以更准确地表示这个词的含义。也就是说,创建一个包含每个单词的 sin 或 cos 函数,然后为了计算其关系,只需计算 sin 或 cos 相似度。

这里的问题是您需要使用哪些功能来创建此功能。好吧,您的问题有点开放,所以在这里我们无法帮助您。有几种方法可以做到这一点,其中一种方法如下:

【讨论】:

  • 谢谢!现在我正在尝试 sematch 包,但如果它停止工作,我将使用它来更明确地计算它。
  • 余弦相似度确实可以用,但这个答案不清楚,公式与问题无关。
猜你喜欢
  • 2016-04-08
  • 1970-01-01
  • 2018-02-28
  • 1970-01-01
  • 1970-01-01
  • 2013-11-19
  • 1970-01-01
  • 2015-12-21
  • 2011-04-18
相关资源
最近更新 更多