在文本中查找相关单词的算法

时间:2011-09-25 07:39:39

标签: artificial-intelligence similarity

我想说一句话(例如“Apple”)并处理文本(或者更多)。我想提出相关的条款。例如:为Apple处理文档并找到iPod,iPhone ,Mac是与“Apple”相关的术语。

关于如何解决这个问题的任何想法?

5 个答案:

答案 0 :(得分:10)

作为起点:您的问题与text mining有关。

有两种方式:统计方法,一种是自然语言处理(nlp)。

我对nlp了解不多,但可以说一下统计方法:

  1. 您需要一些文档的向量空间表示,请参阅   http://en.wikipedia.org/wiki/Vector_space_model   http://en.wikipedia.org/wiki/Document-term_matrix   http://en.wikipedia.org/wiki/Tf%E2%80%93idf

  2. 为了学习语义,即:不同的单词意思相同,或者一个单词可以有不同的含义,你需要一个大的文本语料库来学习。正如我所说,这是一种统计方法,因此您需要大量样本。   http://www.daviddlewis.com/resources/testcollections/

    也许您将从您将要使用的上下文中获得大量文档。那是最好的情况。

  3. 您必须从此语料库中检索潜在因素。最常见的是:

    这些方法涉及大量数学。你可以挖掘它,或者你必须找到好的库。

  4. 我可以推荐以下书籍:

答案 1 :(得分:2)

与所有人工智能一样,这是一个非常棘手的问题。您应该查看natural language processing以了解一些问题。

一种非常简单的方法可以是构建一个二维词表,每对词语在文本中出现的平均距离(以单词表示)。显然,您需要限制所考虑的最大距离,以及可能的单词数量。然后,在处理了大量文本后,您将获得某些单词出现在同一上下文中的频率指示。

答案 2 :(得分:2)

我要做的是获取文本中的所有单词并制作频率列表(每个单词出现的频率)。也许还会增加一个关于这个词离“Apple”有多远的启发因素。然后阅读多个文档,并删除所有文档中不常见的单词。然后根据关键字的频率和距离确定优先级。当然,你会得到很多垃圾,可能会错过一些相关的单词,但通过调整启发式算法,你应该得到至少一些不错的匹配。

答案 3 :(得分:1)

您正在寻找的技术称为Latent Semantic Analysis(LSA)。它有时也称为潜在语义索引。该技术的运作基于相关概念在文本中一起出现的想法。它使用统计信息来构建单词关系。如果有足够多的文档,它肯定会解决你找到相关单词的问题。

答案 4 :(得分:0)