NLTK中的Python一致性命令


问题内容

我对NLTK中的Python一致性命令有疑问。首先,我举了一个简单的例子:

from nltk.book import *

text1.concordance("monstrous")

效果很好。现在,我有自己的.txt文件,我想执行相同的命令。我有一个名为“ textList”的列表,想找到单词“ CNA”,所以我输入了命令

textList.concordance('CNA')

但是,我得到了错误

AttributeError: 'list' object has no attribute 'concordance'.

在示例中,text1不是列表吗?我不知道这是怎么回事。


问题答案:

.concordance()是一个特殊的nltk函数。因此,您不能只在任何python对象(例如您的列表)上调用它。

更具体地说:.concordance()Textnltk类中的方法

基本上,如果要使用.concordance(),则必须首先实例化Text对象,然后在该对象上对其进行调用。

文本

通常从给定的文档或语料库初始化文本。例如:

import nltk.corpus  
from nltk.text import Text  
moby = Text(nltk.corpus.gutenberg.words('melville-moby_dick.txt'))

.concordance()

一致(单词,宽度= 79,行= 25)

在指定的上下文窗口中打印单词的一致性。单词匹配不区分大小写。

所以我想像这样的事情会起作用(未经测试)

import nltk.corpus  
from nltk.text import Text  
textList = Text(nltk.corpus.gutenberg.words('YOUR FILE NAME HERE.txt'))
textList.concordance('CNA')