2

我需要做一个实验,我是 NLP 的新手。我读过解释理论问题的书籍,但在实践方面,我发现很难找到指南。所以请谁知道 NLP 中的任何事情,尤其是实际问题告诉我并指出正确的道路,因为我觉得我迷路了(有用的书籍、有用的工具和有用的网站)

我要做的是获取一个文本并在其中找到特定的单词,例如狗、猫等动物,然后我需要在每一侧提取这个单词和 2 个单词。例如

I was watching TV with my lovely cat last night.

提取的文本将是

(my lovely cat last night)

这将是我对机床的训练示例

Q1:将有大约 100 个与我上面解释的类似的训练示例。我使用 tocknizer 来提取单词,但我如何提取特定的单词(对于我们的示例,所有类型的动物),每边有 2 个单词。例如,我需要使用标签吗?或者你的想法是什么?

Q2:如果我有这些训练样例,我该如何准备合适的数据集给机床进行训练?我应该在这个数据集中写什么来指定动物,我应该提供其他特征吗?以及如何将其排列在数据集中。

你的很多话可能对我有很大帮助请不要犹豫告诉你所知道的

4

2 回答 2

0

您尝试做的事情有时被称为“本体获取”或“自动化本体”,这是一个非常困难的问题。大多数方法归结为“相似的词将倾向于在相似的上下文中使用”。这样做的问题是,虽然有一些算法可以成功地从诸如您的数据中提取语义上有意义的关系,但从“这里有一堆在统计上与您的种子术语共享一个共同分布的术语”到“您的种子术语是动物名称,这里有一些其他的动物名称”具有挑战性。例如,对猫、狗、蛇、鸟的训练最终可能会在类似的情况下为您提供类似“哺乳动物、腊肠犬、生物、两足动物”的结果,但根据您的要求,可能并不完全符合您的需要。

下面是一份研究论文的链接,该论文完全实现了您正在尝试做的事情。他们描述了他们使用的数据表示方法和算法,并且在动物名称问题上至少取得了一定程度的成功。此外,追踪他们的参考资料可能是一项富有成效的练习。

http://www.cl.cam.ac.uk/~ah433/cluk.pdf

于 2011-03-15T03:05:53.973 回答
-1

首先我要说的是,当我几年前开始从事 NLP 工作时,作为一名自学成才的工程师,我完全理解你的沮丧。我建议您阅读 NLTK 书,这是对应用 NLP 的精彩介绍。特别要阅读第 3-7 章,它们处理处理原始文本数据以提取信息并将其用于标记。该书可在线获得

关于您的具体问题:

我认为创建一个小动物列表然后从包含这些动物名称的语料库中提取句子可能要容易得多。维基百科的句子就是一个明显的例子。您可以使用此方法构建语料库,因为您已经知道每个句子中动物的名称。

// PSEUDO CODE
Dictionary animals = ["dog","dogs,"cat","cats","pig","pigs","cow","cows","lion","lions","lioness","lionesses"];
String[] sentences = getWikipediaSentences();
for(sent: sentences){
  for(token: Tokenizer.getTokens(sent)){
    if(animals.contains(token){
    addSentenceToCorpus(sent)
    } // else ignore sentence
  }
}

然后,您可以在这些句子上训练您的算法,以便您可以使用经过训练的模型来提取新的动物名称。这种方法有一些注意事项,因为您的“训练数据”是人为收集的,但它仍然是一个很好的第一次体验。

于 2011-03-31T20:34:11.657 回答