【发布时间】:2011-09-30 17:28:39
【问题描述】:
我正在尝试编写一个算法(我假设它将依赖自然语言处理技术)来“填写”搜索词列表。这种东西可能有一个我不知道的名字。这种问题叫什么,什么样的算法会给我以下行为?
输入:
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 解决方案。
【问题讨论】:
-
你怎么知道 Dolphin 是双组词“Dolphin Watching”或“Miami Dolphins”的一部分?是因为每个二元组中的两个单词都是大写的吗?还是您有另一个包含所需二元组的列表?
-
@RobertHarvey:一个好的 NLP 算法应该能够将 [Miami Dolphins] 解析为一个术语。与[海豚观赏]相同。当您像将每个短语组成一个问题一样思考时,它会更容易。问:“你喜欢看什么巡演?” A:【观海豚之旅】,Q:谁输了比赛? A:[[迈阿密海豚队]]。你必须把它解析成一棵树,看看什么属于什么。无论如何都不是一个简单的问题……但您可以获得一些准确的结果。
-
@RobertHarvey 我有一个特定单词的列表,所以我知道 Dolphin 必须在某个地方。