我希望有一个词(例如“Apple”),然后处理一个文本(或多个文本)。我想找出相关的术语。例如:处理有关Apple的文档,并发现iPod,iPhone,Mac是与“Apple”相关的术语。
对于如何解决这个问题有什么想法吗?
回答:
首先:你的问题与文本挖掘有关。
有两种方法:一种是统计方法,另一种是自然语言处理(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/
也许你有很多来自你要使用的上下文的文档。 这是最好的情况。
-
你必须从这个语料库中检索潜在因子。 最常见的是:
- LSA (http://en.wikipedia.org/wiki/Latent_semantic_analysis)
- PLSA (http://en.wikipedia.org/wiki/Probabilistic_latent_semantic_analysis)
- 非负矩阵分解 (http://en.wikipedia.org/wiki/Non-negative_matrix_factorization)
- 潜在狄利克雷分配 (http://en.wikipedia.org/wiki/Latent_Dirichlet_allocation)
这些方法涉及大量的数学。 要么你深入研究它,要么你必须找到好的库。
我可以推荐以下书籍: