文本挖掘从文本中提取动物类型

时间:2011-03-15 02:03:50

标签: text dataset nlp mining

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

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

I was watching TV with my lovely cat last night.

提取的文字将是

(my lovely cat last night)

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

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

Q2:如果我有这些培训示例,我如何准备适当的数据集,我可以将其提供给机床进行培训?我应该在这个数据集中写什么来指定动物,我是否需要提供其他功能?以及如何在数据集中进行排列。

你的许多话都可能对我有所帮助,请不要犹豫,告诉你你知道什么

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分: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
  }
}

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