首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调用NLTK的tag_sents()方法时,列出超出范围的索引

调用NLTK的tag_sents()方法时,列出超出范围的索引
EN

Stack Overflow用户
提问于 2017-05-14 02:26:30
回答 1查看 516关注 0票数 0

当调用IndexError: list index out of range SennaTagger(modules/nltk/tag/senna.html)的tag_sents()方法时。

给出了一个句子列表作为tag_sents方法的输入。

运行标记程序需要一个senna可执行文件。在这里可以找到SENNA工具包的安装指南。http://ronan.collobert.com/senna/

代码:

代码语言:javascript
复制
from nltk.tag import SennaTagger

SENNA_EXECUTABLE_DIR = '../../tools/senna'

pos_tagger = SennaTagger(SENNA_EXECUTABLE_DIR)

tagged = pos_tagger.tag_sents(["All the banks are closed", "Today is Sunday"])

输出:

代码语言:javascript
复制
Traceback (most recent call last):

  File "<ipython-input-90-886051c3d91d>", line 1, in <module>
    tagged = pos_tagger.tag_sents(["All the banks are closed", "Today is Sunday"])

  File "F:\Programs\Anaconda3\lib\site-packages\nltk\tag\senna.py", line 55, in tag_sents
    tagged_sents = super(SennaTagger, self).tag_sents(sentences)

  File "F:\Programs\Anaconda3\lib\site-packages\nltk\classify\senna.py", line 161, in tag_sents
    result[tag] = tags[map_[tag]].strip()

IndexError: list index out of rangeenter code here
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-14 05:09:37

senna.tag_sents的输入是字符串列表,可以通过[word_tokenize(sent) for sent in sents]实现。

代码语言:javascript
复制
>>> from nltk import word_tokenize
>>> from nltk.tag import SennaTagger
>>> senna = SennaTagger('/home/alvas/senna/')
>>> sents = ["All the banks are closed", "Today is Sunday"]

>>> tokenized_sents = [word_tokenize(sent) for sent in sents]
>>> senna.tag_sents(tokenized_sents)
[[('All', u'PDT'), ('the', u'DT'), ('banks', u'NNS'), ('are', u'VBP'), ('closed', u'VBN')], [('Today', u'NN'), ('is', u'VBZ'), ('Sunday', u'NNP')]]

或者,如果您不想在标记之前实现map,则使用tokenized_sents

代码语言:javascript
复制
>>> tokenized_sents = map(word_tokenize, sents)
>>> senna.tag_sents(tokenized_sents)
[[('All', u'PDT'), ('the', u'DT'), ('banks', u'NNS'), ('are', u'VBP'), ('closed', u'VBN')], [('Today', u'NN'), ('is', u'VBZ'), ('Sunday', u'NNP')]]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43959815

复制
相关文章

相似问题

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