首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NLP模型训练

NLP模型训练
EN

Stack Overflow用户
提问于 2013-05-11 04:41:46
回答 1查看 970关注 0票数 2

我刚开始学习NLP (自然语言处理),很难理解一个重要的概念。如何对未来输入的关系提取系统进行训练?

例如,我有几行代码如下:

  • 汤姆在abc公司工作。
  • 曾傑瑞在木兹工作
  • 组织是人的工作场所。

在所有这些情况下,关系关系是“人”、“组织”和关系型“工作”。

基于以上的例子和一些NLP读物,我认为我们需要根据词性标签的一部分来训练系统,而不是实例化的“实体名”,以使它对其他字段输入数据具有通用性。这是我真正感到困惑的部分。

请不要简单地告诉我一些算法( SVM等),因为我知道它们是可能的,但是我缺少关于算法如何处理这些行以处理其他输入的细节。我看到的所有例子都直接提供了模型并告诉我们使用它们,因此我无法构造一些我想要的东西。

任何关于算法(任何示例算法都可以)如何使用上述句子来构建训练模型的例子都将是非常有帮助的。

谢谢你的时间和帮助。

注意:标记部分中指定的任何一种编程语言对我来说都是可以的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-11 06:09:02

你说得对。有这么多的词,简单地使用这个词实际上不允许你开发一个好的模型。你需要降低维数。正如你所建议的那样,一种方法就是把词性说出来。当然,您还可以提取其他特性。例如,我的一个.arff文件中有一个非常小的部分用于确定句子中的句点是否标志着句点的结束:

代码语言:javascript
复制
@relation period

@attribute minus_three {'CC', 'CD', 'DT', 'FW', 'IN', 'JJ', 'JJR', 'JJS', 'LS', 'MD', 'NN', 'NNPS', 'NNS', 'NP', 'PDT', 'PRP', 'PRP$', 'RB', 'RBR', 'RBS', 'RP', 'UH', 'VB', 'VBD', 'VBG', 'VBN', 'VBP', 'VBZ', 'WDT', 'WP','WRB', 'NUM', 'PUNC', 'NEND', 'RAND'}
@attribute minus_three_length real
@attribute minus_three_case {'UC','LC','NA'}
@attribute minus_two {'CC', 'CD', 'DT', 'FW', 'IN', 'JJ', 'JJR', 'JJS', 'LS', 'MD', 'NN', 'NNPS', 'NNS', 'NP', 'PDT', 'PRP', 'PRP$', 'RB', 'RBR', 'RBS', 'RP', 'UH', 'VB', 'VBD', 'VBG', 'VBN', 'VBP', 'VBZ', 'WDT', 'WP','WRB', 'NUM', 'PUNC', 'NEND', 'RAND'}
@attribute minus_two_length real
@attribute minus_two_case {'UC','LC','NA'}
@attribute minus_one {'CC', 'CD', 'DT', 'FW', 'IN', 'JJ', 'JJR', 'JJS', 'LS', 'MD', 'NN', 'NNPS', 'NNS', 'NP', 'PDT', 'PRP', 'PRP$', 'RB', 'RBR', 'RBS', 'RP', 'UH', 'VB', 'VBD', 'VBG', 'VBN', 'VBP', 'VBZ', 'WDT', 'WP','WRB', 'NUM', 'PUNC', 'NEND', 'RAND'}
@attribute minus_one_length real
@attribute minus_one_case {'UC','LC','NA'}
@attribute plus_one {'CC', 'CD', 'DT', 'FW', 'IN', 'JJ', 'JJR', 'JJS', 'LS', 'MD', 'NN', 'NNPS', 'NNS', 'NP', 'PDT', 'PRP', 'PRP$', 'RB', 'RBR', 'RBS', 'RP', 'UH', 'VB', 'VBD', 'VBG', 'VBN', 'VBP', 'VBZ', 'WDT', 'WP','WRB', 'NUM', 'PUNC', 'NEND', 'RAND'}
@attribute plus_one_length real
@attribute plus_one_case {'UC','LC','NA'}
@attribute plus_two {'CC', 'CD', 'DT', 'FW', 'IN', 'JJ', 'JJR', 'JJS', 'LS', 'MD', 'NN', 'NNPS', 'NNS', 'NP', 'PDT', 'PRP', 'PRP$', 'RB', 'RBR', 'RBS', 'RP', 'UH', 'VB', 'VBD', 'VBG', 'VBN', 'VBP', 'VBZ', 'WDT', 'WP','WRB', 'NUM', 'PUNC', 'NEND', 'RAND'}
@attribute plus_two_length real
@attribute plus_two_case {'UC','LC','NA'}
@attribute plus_three {'CC', 'CD', 'DT', 'FW', 'IN', 'JJ', 'JJR', 'JJS', 'LS', 'MD', 'NN', 'NNPS', 'NNS', 'NP', 'PDT', 'PRP', 'PRP$', 'RB', 'RBR', 'RBS', 'RP', 'UH', 'VB', 'VBD', 'VBG', 'VBN', 'VBP', 'VBZ', 'WDT', 'WP','WRB', 'NUM', 'PUNC', 'NEND', 'RAND'}
@attribute plus_three_length real
@attribute plus_three_case {'UC','LC','NA'}
@attribute left_before_reliable real
@attribute right_before_reliable real
@attribute spaces_follow_period real
@attribute class  {'EOS','NEOS'}

@data

VBP, 2, LC,NP, 4, UC,NN, 1, UC,NP, 6, UC,NEND, 1, NA,NN, 7, LC,31,47,1,NEOS
NNS, 10, LC,RBR, 4, LC,VBN, 5, LC,?, 3, NA,NP, 6, UC,NP, 6, UC,93,0,0,EOS
VBD, 4, LC,RB, 2, LC,RP, 4, LC,CC, 3, UC,UH, 5, LC,VBP, 2, LC,19,17,2,EOS

编辑(基于问题):所以,这是一个监督学习实验。训练数据来自段落式格式的正常句子,但被转换为以下向量模型:

  • 第1栏:类别:句子结尾或不结尾
  • 第2-8栏:围绕所涉期间的+/- 3字
  • 第9、10栏:下一个可靠句子定界符之前的句点的左/右字数(例如?)!或段落标记)。
  • 第11栏:期间之后的空格数。

当然,这不是一个非常复杂的问题,但这是一个很好的介绍Weka。因为我们不能仅仅用单词作为功能,所以我使用了它们的POS标签。我还提取了单词的长度,不管这个词是否大写等等。

因此,只要能够将其转换为上面的向量模型并提取.arff中使用的特性,您就可以将任何东西作为测试数据提供。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16493829

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档