Python 捕捉单词并重写

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')

用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') 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处获取答案。抱歉,我不想解释我的问题。