2011-03-15 69 views
2

我需要做一个实验,我是NLP中的新成员。我已经阅读了解释理论问题的书籍,但在实际操作中,我发现很难找到指南。所以请谁知道NLP中的任何内容,特别是实际问题告诉我,并指向正确的道路,因为我觉得我迷路了(有用的书籍,有用的工具和有用的网站)文本挖掘从文本中提取动物类型

我想要做的是采取文本并找到特定的单词,例如动物,如狗,猫,等等,然后我需要提取这个单词和两个单词。 例如

I was watching TV with my lovely cat last night. 

提取的文本将

(my lovely cat last night) 

这将是我的训练为例,机床

Q1:会有类似于我解释大约100训练实例以上。我用tocknizer来提取单词,但我怎样才能提取特定的单词(对于我们的例子所有类型的动物),每个单词有两个单词。我是否需要使用标签,或者您的想法是什么?第二季度:如果我有这些训练示例,我该如何准备适当的数据集,以便将其交给机床进行训练?我应该在这个数据集中写什么来指定动物,并且我是否需要提供其他功能?以及如何将它安排在数据集中。

从你很多的话可能会帮助我很多,请不要犹豫,告诉你所知道的

回答

0

你所试图做的是有时被称为“本体收购”或“自动本体”,是一个漂亮的难题。大多数方法归结为“类似的词会倾向于用在类似的语境中。”这样做的问题在于,虽然有些算法可以成功地从诸如你的数据中提取语义上有意义的关系,但从“这里有一些统计上与你的种子术语共享一个共同分布的术语”到“你的种子术语是动物名称,这里有一些其他的动物名称“是具有挑战性的。例如,对猫,狗,蛇,鸟的训练可能最终会给你类似“哺乳动物,腊肠,生物,两足动物”的结果在类似的环境中使用,但取决于你的要求,可能并不完全符合你的需要。

下面是一个研究论文的链接,该论文完全实现了你正在尝试做的事情。他们描述了他们对数据表示和算法的使用方法,并至少在动物名称问题上取得了一定程度的成功。此外,跟踪它们的引用可能是一个富有成果的实践..

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

0

让我首先要说,作为一个自学成才的工程师,当我开始在NLP工作几年前,我完全理解你的无奈。我建议你阅读NLTK书,这是对应用NLP的精彩介绍。特别是,阅读第3-7章,涉及处理原始文本数据以提取信息并将其用于标记。这本书是available online

至于您的具体问题:

我想,这可能是更容易创建动物的小单子,然后从包含这些动物名称的语料库中提取的句子。维基百科句子就是一个明显的例子。你可以使用这种方法建立你的语料库,因为你已经知道每个句子中动物的名字。

// 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 
    } 
} 

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