Closed. This question is off-topic。它当前不接受答案。
想要改善这个问题吗? Update the question,所以它是用于堆栈溢出的on-topic。
已关闭8年。
Improve this question
我需要从给定的文本中提取所有英语动词,我想知道我该怎么做...
乍一看,我的想法是使用正则表达式,因为所有英语动词时态都遵循模式,但也许还有另一种方式。我以为就是:
为每个动词时态创建一个模式。我必须以某种方式区分常规动词(http://en.wikipedia.org/wiki/English_verbs)和不规则动词(http://www.chompchomp.com/rules/irregularrules01.htm)。 遍历这些模式并使用它们拆分文本(每个子字符串的最后一个词应该是使句子具有完整含义的动词,我需要将其用于其他目的->名词化)
你怎么看?我想这不是一种有效的方法,但我无法想象另一种方法。
先感谢您!
PS:
我有两个词典,一个词典用于所有英语动词,另一个词典用于所有英语名词 所有这一切的主要问题是该项目包括动词名词化(这只是一个uni项目),因此应该将所有“努力”都集中在名词化这一部分上。具体而言,我遵循以下模型:acl.ldc.upenn.edu/P/P00/P00-1037.pdf)。该项目包括给定一个文本,找到该文本中的所有动词,并为每个动词提议多个名词化。因此第一步(查找动词)应该尽可能简单...但是我不能使用任何解析器,不允许使用
生成的POS标记 token 将是一个元组数组,其中每个元组中的第一个条目是标记单词的身份,第二个条目是单词的POS标签,例如对于
了解标记集
斯坦福POS标记器和NLTK都使用Penn Treebank tag set。如果您只想提取动词,请拉出所有带有以“V”开头的POS标签的单词(例如,VB,VBD,VBG,VBN,VBP和VBZ)。
想要改善这个问题吗? Update the question,所以它是用于堆栈溢出的on-topic。
已关闭8年。
Improve this question
我需要从给定的文本中提取所有英语动词,我想知道我该怎么做...
乍一看,我的想法是使用正则表达式,因为所有英语动词时态都遵循模式,但也许还有另一种方式。我以为就是:
你怎么看?我想这不是一种有效的方法,但我无法想象另一种方法。
先感谢您!
PS:
最佳答案
语音标记工具
使用Part-of-Speech (POS) tagger识别并提取文本中的所有动词非常容易。这样的标记器使用词性标记来标记文本中的所有单词,这些词性标记指示它们是否是动词,名词,形容词,副词等。现代POS标记器非常准确。例如,Toutanova等。 2003年报告称,斯坦福大学的开源POS标记器在Newswire数据上分配了正确标记的时间为97.24%。
执行POS标记
Java 如果使用Java,则Stanford Log-linear Part-Of-Speech Tagger是用于POS标记的一个很好的软件包。 Matthew Jockers撰写了有关使用此标记器的出色教程,您可以找到here。
Python 如果您喜欢Python,则可以使用Natural Language Toolkit (nltk)中包含的POS标记器。下面给出了演示如何使用此程序包执行POS标记的代码段:
import nltk
text = "I am very happy to be here today"
tokens = nltk.word_tokenize(text)
pos_tagged_tokens = nltk.pos_tag(tokens)
生成的POS标记 token 将是一个元组数组,其中每个元组中的第一个条目是标记单词的身份,第二个条目是单词的POS标签,例如对于
pos_tagged_tokens
以上的代码段,将设置为:[('I', 'PRP'), ('am', 'VBP'), ('very', 'RB'), ('happy', 'JJ'), ('to', 'TO'),
('be', 'VB'), ('here', 'RB'), ('today', 'NN')]
了解标记集
斯坦福POS标记器和NLTK都使用Penn Treebank tag set。如果您只想提取动词,请拉出所有带有以“V”开头的POS标签的单词(例如,VB,VBD,VBG,VBN,VBP和VBZ)。