6

我正在尝试编写一种算法(我假设它将依赖自然语言处理技术)来“填写”搜索词列表。这种东西可能有一个我不知道的名字。这种问题叫什么,什么样的算法会给我以下行为?

输入:

    docs = [
    "I bought a ticket to the Dolphin Watching cruise",
    "I enjoyed the Dolphin Watching tour",
    "The Miami Dolphins lost again!",
    "It was good going to that Miami Dolphins game"
    ], 
    search_term = "Dolphin"

输出:

["Dolphin Watching", "Miami Dolphins"]

基本上应该弄清楚,如果“Dolphin”出现,它几乎总是在“Dolphin Watching”或“Miami Dolphins”的二元组中。首选 Python 解决方案。

4

2 回答 2

7

基本上应该弄清楚,如果“Dolphin”出现,它几乎总是在“Dolphin Watching”或“Miami Dolphins”的二元组中。

听起来您想确定 Dolphin 出现的搭配多种搭配查找方法,最流行的是计算语料库中术语之间的逐点互信息(PMI),然后选择具有最高 PMI 的术语海豚。您可能还记得我之前建议的情绪分析算法中的 PMI 。

各种搭配查找方法的 Python 实现包含在 NLTK 中,为nltk.collocations. Manning 和 Schütze 的FSNLP(1999 年,但仍然是该主题的最新内容)对该领域进行了一些深入的介绍。

于 2011-09-30T09:28:39.603 回答
0

我在大学的 NLP 课程中使用了自然语言工具包并取得了不错的成功。我认为它有一些标记器可以帮助您确定哪些是名词,并帮助您将其解析成一棵树。我不记得太多,但我会从那里开始。

于 2011-09-29T23:49:28.740 回答