将相似的词分组(坏,更糟)

时间:2015-05-27 04:16:42

标签: text-processing text-analysis

我知道有很多方法可以通过在python中使用NLTK / pywordnet或Pattern包来找到同义词,但它并没有解决我的问题。

如果有像

这样的词
  • 坏,最坏情况下,差
  • 袋,行李
  • 丢失,失去,错位

我无法捕获它们。任何人都可以建议我一种可能的方式吗?

2 个答案:

答案 0 :(得分:3)

过去20年来,该领域进行了大量研究。是的,计算机不懂语言,但我们可以通过一些手动操作培训他们在两个单词中找到相似性或差异性。

方法可能是:

  1. 基于手动策划的数据集,其中包含语言中的单词如何相互关联。

  2. 基于出现在语料库中的单词的统计或概率测量。

  3. 方法1:

    尝试使用Wordnet。它是一个人为策划的词汇网络,它根据人类的理解保留了词语之间的关系。简而言之,它是一个带有节点的图形,称为“同义词”。和边缘作为它们之间的关系。因此,彼此非常接近的任何两个词的含义都很接近。属于同一个synset的单词可能意味着完全相同。行李和行李很接近 - 您可以通过以广度优先的方式反复探索节点到节点来找到 - 例如从行李开始,探索其邻居以试图找到行李和行李' #39 ;.对于任何实际应用,您必须将此搜索限制为少量迭代。另一种风格是从节点开始随机游走并尝试在多次尝试和距离内到达另一个节点。从袋子里拿到行李说,在10次移动中500次中的500次,你可以非常肯定它们彼此非常相似。随机游走在更大更复杂的图形中更有用。

    enter image description here 在线还有许多其他类似的资源。

    方法2:

    Word2Vec。这里很难解释它,但它的工作原理是根据文本中的上下文创建用户建议维数的向量。二十年来一直有一个想法,即类似语境中的词语意思相同。例如我要检查一下我的行李,我要检查行李,这两个行李都可能出现在文字中。您可以阅读论文以获得解释(最后链接)。

    因此,您可以在大量语料库上训练Word2Vec模型。最后,你将能够获得“矢量”。对于每个单词。您不需要了解此向量的重要性。您可以使用此向量表示来查找单词之间的相似性或差异,或生成任何单词的同义词。这个想法是彼此相似的单词具有彼此接近的向量。

    两年前,Word2vec出现了,并立即成为了“使用中的东西”。在大多数NLP应用程序中。此方法的质量取决于数据的数量和质量。一般来说,维基百科转储被认为是培训的良好培训数据,因为它包含几乎所有有意义的文章。您可以轻松找到在线维基百科上训练的即用型模型。

    Radim网站上的一个小例子:

    >>> model.most_similar(positive=['woman', 'king'], negative=['man'], topn=1)
    [('queen', 0.50882536)]
    >>> model.doesnt_match("breakfast cereal dinner lunch".split())
    'cereal'
    >>> model.similarity('woman', 'man')
    0.73723527
    

    第一个例子告诉你最接近的单词(topn = 1)到单词女人国王但同时也最远离单词<强>人即可。答案是女王。第二个例子是奇怪的一个。第三个在你的语料库中告诉你这两个词有多相似。

    Word2vec易于使用的工具:

    https://radimrehurek.com/gensim/models/word2vec.html

    http://papers.nips.cc/paper/5021-distributed-representations-of-words-and-phrases-and-their-compositionality.pdf(警告:未来有很多数学)

答案 1 :(得分:-1)

我认为程序无法理解语言。唯一足够强大的领域是机器学习,Look what happened the last time.

因此,我认为最好的方法就是将其恢复到旧的限制规则 - 并查找在线词典。

当我使用C#做类似的事情时,我使用了the following dictionary。每当你想检查单词的定义时,你可以转到lzc,你会得到一个简单的html页面,你可以下载并乱用。例如,坏和坏 -

BAD

  

坏\坏\(b [a ^] d),a。 [
比较。更糟糕的是(w [^ u] s); superl。      最糟糕的(w [^ u] st)。] [可能是fr。如。 B [AE] DDEL      雌雄同体;比照b [ae] dling effeminate fellow。]      想要良好的品质,无论是身体还是道德;伤害,      伤害,不方便,冒犯,痛苦,不利或      有缺陷的,无论是身体还是道德;邪恶;恶毒;      邪恶; - 好的反面;作为一个坏人;坏      进行;陋习;坏土;空气不好;身体不好;不好      作物;坏消息。

WORSE

  

更糟\更糟糕\,a。,比较。坏的[OE。更糟糕的是,wurse,      如。 wiersa,wyrsa,没有相应的比较      正;类似于OS。 wirsa,OFries。 Wirra,OHG。 wirsiro,      伊切尔。 verri,Sw。 v [“a] rre,Dan。v [”a] rre,哥特。 WA ['I] rsiza,      可能是OHG。 Werran引起混乱,E.战争,      和L. verrere扫荡,扫过。坏了没有      比较和最高级,差和最差用于代替      他们虽然在词源上与他们无关      坏。]      在更大程度上是坏,恶,恶或腐败;更糟糕或      邪恶;不太好;特别是在较差的健康方面;更加恶心;       - 在身体和道德意义上使用。      [1913韦伯斯特]

正如你所看到的,两者在比较中出现在彼此的定义中 - 因此,你可以说出它们的含义是相似的。如果你能够充分利用数据并知道你在寻找什么,这甚至可以为你解决。祝好运! (: