【发布时间】:2011-09-25 07:39:38
【问题描述】:
我想要一个词(例如“Apple”)并处理一个文本(或者更多)。我想提出相关的术语。例如:为 Apple 处理一个文档并找到那个 iPod、iPhone , Mac 是与“Apple”相关的术语。
你知道如何解决这个问题吗?
【问题讨论】:
-
看看这个:semantic-link.com
标签: artificial-intelligence similarity
我想要一个词(例如“Apple”)并处理一个文本(或者更多)。我想提出相关的术语。例如:为 Apple 处理一个文档并找到那个 iPod、iPhone , Mac 是与“Apple”相关的术语。
你知道如何解决这个问题吗?
【问题讨论】:
标签: artificial-intelligence similarity
作为起点:您的问题与text mining 有关。
有两种方法:一种是统计方法,一种是自然语言处理 (nlp)。
我对nlp了解不多,但可以说一下统计方法:
您需要一些文档的向量空间表示,请参阅 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
为了学习语义,即:不同的词表示相同的意思,或者一个词可以有不同的意思,你需要一个大的文本语料库进行学习。正如我所说,这是一种统计方法,因此您需要大量样本。 http://www.daviddlewis.com/resources/testcollections/
也许您有很多来自您要使用的上下文的文档。那是最好的情况。
您必须从该语料库中检索潜在因素。最常见的是:
这些方法涉及大量数学。要么你去挖掘它,要么你必须找到好的库。
我可以推荐以下书籍:
【讨论】:
与所有 AI 一样,这是一个非常困难的问题。您应该查看natural language processing 以了解其中的一些问题。
一种非常非常简单的方法是构建一个单词的二维表,其中每对单词的平均距离(以单词为单位)出现在文本中。显然,您需要限制考虑的最大距离,以及可能的字数。然后,在处理大量文本后,您将获得特定单词在同一上下文中出现频率的指标。
【讨论】:
我要做的是获取文本中的所有单词并制作频率列表(每个单词出现的频率)。也许还可以添加一个启发式因素,说明这个词与“Apple”的距离有多远。然后阅读多个文档,将所有文档中不常见的单词划掉。然后根据与关键字的频率和距离进行优先级排序。当然,你会得到很多垃圾,并且可能会漏掉一些相关的词,但是通过调整启发式算法,你至少应该得到一些不错的匹配。
【讨论】:
您正在寻找的技术称为Latent Semantic Analysis (LSA)。它有时也称为潜在语义索引。该技术基于相关概念在文本中一起出现的想法。它使用统计数据来建立单词关系。给定足够大的文档语料库,它肯定会解决您查找相关词的问题。
【讨论】:
【讨论】: