Python 捕捉单词并重写
用nlpnet()制作了一个单词分类器。目标是仅提取具有给定标记的单个单词 响应代码Python 捕捉单词并重写,python,python-2.7,text,url-rewriting,pos-tagger,Python,Python 2.7,Text,Url Rewriting,Pos Tagger,用nlpnet()制作了一个单词分类器。目标是仅提取具有给定标记的单个单词 响应代码 import nlpnet import codecs import itertools TAGGER = nlpnet.POSTagger('pos-pt', language='pt') def TAGGER_txt(text): return (list(TAGGER.tag(text))) with codecs.open('document.txt', encoding='utf8')
import nlpnet
import codecs
import itertools
TAGGER = nlpnet.POSTagger('pos-pt', language='pt')
def TAGGER_txt(text):
return (list(TAGGER.tag(text)))
with codecs.open('document.txt', encoding='utf8') as original_file:
with codecs.open('document_teste.txt', 'w') as output_file:
for line in original_file.readlines():
print (line)
words = TAGGER_txt(line)
all_words = list(itertools.chain(*words))
nouns = [word[0] for word in all_words if word[1]=='V']
print (nouns)
结果
O gato esta querendo comer o ratão
['gato', 'ratão']
我认为这可能是你所需要的本质请查看编辑版本。 正如您在问题中所说,标记
句子
的结果类似于标记的
。如果您只需要句子
中的名词,可以使用名词=
之后的表达式恢复它们
Sentence = " O gato esta querendo comer o rato "
tagged = [('O', 'ADJ'), ('gato', 'N'), ('esta', 'V'), ('querendo', 'V'), ('comer', 'V'), ('o', 'ADJ'), ('rato', 'N')]
nouns = [t[0] for t in tagged if t[1]=='N']
print (nouns)
输出:
['gato', 'rato']
O gato esta querendo comer o ratão
['gato', 'ratão']
编辑:我不清楚你想要什么。还有一种可能性
- 我还没有安装nlpnet,因为这将是一个相当大的工作,我不会使用它自己
- 我用TAGGER_txt模拟TAGGER.txt
- 我已将编码改为拉丁语-1。它用于标题和
编解码器中。打开
['gato', 'rato']
O gato esta querendo comer o ratão
['gato', 'ratão']
问题:。。。将包含超过N次特定词性出现的句子转储到文件中
注意:假设
'document.txt'
每行包含一句话
输出:
Sentence:O gato esta querendo comer o ratão
[(u'O', u'ART'), (u'gato', u'N'), (u'esta', u'PROADJ'), (u'querendo', u'V'), (u'comer', u'V'), (u'o', u'ART'), (u'rat', u'N')]
用Python测试:3.4.2和2.7.9您的问题,并显示一个包含5个以上动词的示例句子,以及该句子的
打印输出(TAGGER.tag(句子)[0].arg_结构)
。输入文件的一行是否包含一些整数倍数的葡萄牙语句子?我的意思是,没有额外的单词,比如前一句的结尾或下一句的开头?@stovfl我编辑了这个问题,看看它是否更清晰。@BillBell和一个包含多行文本、不同大小和不同单词的文本文档。(1)让我换一种方式来回答我的问题:如果我读了输入文本文件的一行,它会包含一个句子吗?(2) 请您在问题中插入文字,以便我们可以方便地复制,而不是给我们图片,好吗?我理解您的逻辑。但是,在标记参数中,我无法有效地应用于我的codic。我只需要捕获类别为n的单词。@Jeferson:您的问题并显示您的预期输出,或者从#Bill Bell处获取答案。抱歉,我不想解释我的问题。