Python 斯坦福NLP Tagger通过NLTK-tag_sents将所有内容拆分为字符

Python 斯坦福NLP Tagger通过NLTK-tag_sents将所有内容拆分为字符,python,nlp,nltk,stanford-nlp,Python,Nlp,Nltk,Stanford Nlp,我希望有人对此有经验,因为除了2015年关于Nertager的bug报告之外,我在网上找不到任何评论,这可能是相同的 无论如何,我正在尝试批处理文本,以避开性能不佳的基本标记器。据我所知,tag_Sent应该有所帮助 from nltk.tag.stanford import StanfordPOSTagger from nltk import word_tokenize import nltk stanford_model = 'stanford-postagger/models/engli

我希望有人对此有经验,因为除了2015年关于Nertager的bug报告之外,我在网上找不到任何评论,这可能是相同的

无论如何,我正在尝试批处理文本,以避开性能不佳的基本标记器。据我所知,tag_Sent应该有所帮助

from nltk.tag.stanford import StanfordPOSTagger
from nltk import word_tokenize
import nltk

stanford_model = 'stanford-postagger/models/english-bidirectional-distsim.tagger'
stanford_jar = 'stanford-postagger/stanford-postagger.jar'
tagger = StanfordPOSTagger(stanford_model, stanford_jar)
tagger.java_options = '-mx4096m'
text = "The quick brown fox jumps over the lazy dog."
print tagger.tag_sents(text)
除非不管我传递给tag_sents方法的是什么,文本都会被拆分成字符而不是单词。有人知道它为什么不能正常工作吗?这就像预期的一样

tag(text)

我也试着将句子拆分成标记,看看这是否有帮助,但处理方法相同。
tag\u sents
函数会获取字符串列表

tagger.tag_sents(word_tokenize("The quick brown fox jumps over the lazy dog."))
这里有一个有用的成语:

 tagger.tag_sents(word_tokenize(sent) for sent in sent_tokenize(text))

其中,
text
是一个字符串。

阿尔瓦斯所说的另一个变体,对我有用:
tagger.tag\u sents([[text]])
这可能是因为
tag\u sents()
需要一个句子列表,但
word\u tokenize()
正在生成一个单词列表。实际上,我传递什么并不重要。为了以防万一,我尝试了字符串和标记化的单词。我会更新…谢谢!如果你把它作为一个列表传递呢?比如
tagger.tag\u sents([text])
?我运行StanfordPOSTagger有问题,所以我自己无法运行这些。不用担心。我感谢你的帮助。还活着。我想我们现在只需要使用NLTK的pos-tagger[[(u'T',u'NN'),(u'h',u'NN'),(u'e',u'SYM'),(u'q',u'FW'),(u'u',u'FW'),(u'I',u'FW'),(u'c',u'NN,(u'k',u'NN,(u'b',u'r',u'NN如果你去掉括号,把它变成一个生成器表达式,会更有用!谢谢@alexis。