【问题标题】:Using conditional variables with nltk's concordance module在 nltk 的索引模块中使用条件变量
【发布时间】:2012-03-19 21:01:07
【问题描述】:

我刚刚开始使用 nltk,但无法让 concordance 模块使用条件变量。我想为拉丁文本中的任何给定单词返回一个索引,但由于语言是屈折的,我希望能够指定词干,识别语料库中包含词干的任何单词,并返回一个索引.我使用的代码是:

book1 = open('Book1.txt', 'rU').read()
token1 = nltk.word_tokenize(book1)
text1 = nltk.Text(token1)

word = raw_input("What stem do you want to search?\n > ")

text1.concordance([w for w in text1 if w.startswith(word)])

返回错误:

    Traceback (most recent call last):
  File "C:\Users\admin\Desktop\start_nltk_horace.py", line 68, in <module>
    concordance()
  File "C:\Users\admin\Desktop\start_nltk_horace.py", line 49, in concordance
    text1.concordance([w for w in text1 if w.startswith(word)])
  File "C:\Python27\lib\site-packages\nltk\text.py", line 314, in concordance
    self._concordance_index.print_concordance(word, width, lines)
  File "C:\Python27\lib\site-packages\nltk\text.py", line 177, in print_concordance
    offsets = self.offsets(word)
  File "C:\Python27\lib\site-packages\nltk\text.py", line 156, in offsets
    word = self._key(word)
  File "C:\Python27\lib\site-packages\nltk\text.py", line 312, in <lambda>
    key=lambda s:s.lower())
AttributeError: 'list' object has no attribute 'lower'

只需指定 text1.concordance(word) 即可返回我正在寻找的内容,没有任何问题(假设我输入了完全拒绝的词),但我必须重复该函数六次才能获得所有不同的一致性一个词的变格。

【问题讨论】:

    标签: python conditional nltk


    【解决方案1】:

    我认为问题在于您试图为 NLTK 的 concordance() 函数提供一个单词列表,而它只接受一个字符串。请尝试以下方法:

    my_concordances = []
    my_inputs = [elem for elem in text1 if elem.startswith(word)]
    for input in my_inputs:
        my_concordances.append(text1.concordance(input))
    

    然后,my_concordances 应该以列表的形式结束,其中每个条目都是以原始输入字符串开头的不同单词的索引。您还可以考虑根据concordance() 函数返回的特定数据类型为my_concordances 预先分配空间,因为您可以只检查my_inputs 的长度。如果有问题,这可能会提高速度。

    请注意,this question 您可能也会感兴趣。它在concordance() 上进行了更详细的介绍。

    【讨论】:

      猜你喜欢
      • 2021-07-08
      • 1970-01-01
      • 2021-08-08
      • 1970-01-01
      • 1970-01-01
      • 2018-08-22
      • 1970-01-01
      • 1970-01-01
      • 2017-04-11
      相关资源
      最近更新 更多