小编πόδ*_*κύς的帖子

什么会导致WordNetCorpusReader没有属性LazyCorpusLoader?

我有一个简短的函数,通过将它与Natural Language Toolkit中的WordNet语料库进行比较来检查单词是否是真正的单词.我从一个验证txt文件的线程调用此函数.当我运行我的代码时,第一次调用该函数时,它会抛出带有消息的AttributeError

"'WordNetCorpusReader' object has no attribute '_LazyCorpusLoader__args'"
Run Code Online (Sandbox Code Playgroud)

当我暂停执行时,同一行代码不会引发错误,因此我假设在我第一次调用时尚未加载语料库导致错误.

我曾尝试使用nltk.wordnet.ensure_loaded()强制加载语料库,但我仍然得到同样的错误.

这是我的功能:

from nltk.corpus import wordnet as wn
from nltk.corpus import stopwords
from nltk.corpus.reader.wordnet import WordNetError
import sys

cachedStopWords = stopwords.words("english")

def is_good_word(word):
    word = word.strip()
    if len(word) <= 2:
        return 0
    if word in cachedStopWords:
        return 0
    try:
        wn.ensure_loaded()
        if len(wn.lemmas(str(word), lang='en')) == 0:
            return 0
    except WordNetError as e:
        print "WordNetError on concept {}".format(word)
    except AttributeError as e:
        print "Attribute error on concept {}: {}".format(word, e.message) …
Run Code Online (Sandbox Code Playgroud)

python multithreading attributes exception nltk

11
推荐指数
1
解决办法
5306
查看次数

使用NLTK对来自OCR的未分裂单词进行标记

我正在使用NLTK处理从PDF文件中提取的一些文本.我可以完整地恢复文本,但是有很多实例没有捕获单词之间的空格,所以我得到的单词ifI不是代替if I,thatposition而是代替that positionandhe's代替and he's.

我的问题是:如何使用NLTK查找它无法识别/未学习的单词,并查看是否存在更可能发生的"附近"单词组合?有没有更优雅的方式来实现这种检查,而不是简单地通过无法识别的单词,一次一个字符,拆分它,并查看它是否产生两个可识别的单词?

python ocr split tokenize nltk

5
推荐指数
1
解决办法
1111
查看次数

如何使用python在文件中查找最常出现的单词对集合?

我有一个数据集如下:

"485","AlterNet","Statistics","Estimation","Narnia","Two and half men"
"717","I like Sheen", "Narnia", "Statistics", "Estimation"
"633","MachineLearning","AI","I like Cars, but I also like bikes"
"717","I like Sheen","MachineLearning", "regression", "AI"
"136","MachineLearning","AI","TopGear"
Run Code Online (Sandbox Code Playgroud)

等等

我想找出最常出现的单词对,例如

(Statistics,Estimation:2)
(Statistics,Narnia:2)
(Narnia,Statistics)
(MachineLearning,AI:3)
Run Code Online (Sandbox Code Playgroud)

这两个词可以是任何顺序,也可以是彼此之间的任何距离

有人可以在python中提出可能的解决方案吗?这是一个非常大的数据集.

任何建议都非常感谢

所以这是我在@ 275365的建议后尝试的

@ 275365我尝试从文件中读取输入以下内容

    def collect_pairs(file):
        pair_counter = Counter()
        for line in open(file):
            unique_tokens = sorted(set(line))  
            combos = combinations(unique_tokens, 2)
            pair_counter += Counter(combos)
            print pair_counter

    file = ('myfileComb.txt')
    p=collect_pairs(file)
Run Code Online (Sandbox Code Playgroud)

文本文件与原始文件具有相同的行数,但在特定行中只有唯一的标记.我不知道我做错了什么,因为当我运行它时,它会将字母分成字母,而不是将输出作为单词的组合.当我运行此文件时,它会输出拆分字母而不是预期的单词组合.我不知道我在哪里弄错了.

python word-count python-2.7

4
推荐指数
1
解决办法
4504
查看次数

如何使用unixodbc和freetds在Mac上安装RODBC?

经过相当广泛的搜索后,我注意到很多人都很难找到一个回答这个问题的从头到尾的指南.(至少有一个问题指出存在一个解决方案,但是提出的解决方案并没有解决这样一个事实,即默认情况下,RODBC尝试针对iODBC进行编译,而iostBC并未包含在Yosemite中.)我刚刚完成了这个过程,所以我以为我会在这里记录它,希望它会使其他人受益.我正在连接到SQL Server数据库.

macos unixodbc rodbc osx-yosemite

3
推荐指数
1
解决办法
2728
查看次数

迭代失败的具体行为

最近我有人向我询问有关在迭代时更改列表的失礼.他们提出了以下场景(我现在用更好的例子更新了)作为可能的用例,当时可能需要这样做:

>>> jersey_numbers = [4, 2, 3, 5, 1]  # list of places in a race
>>> for jersey_number in jersey_numbers:
        if jersey_number == 2:  # disqualify jersey number 2 for a false start
            t.remove(jersey_number)
>>> t
[4, 3, 5, 1]  # jersey number 3 is now in second place
Run Code Online (Sandbox Code Playgroud)

这种行为是否足够常规用于诸如此类的用例?

python

2
推荐指数
2
解决办法
352
查看次数

在Python中从List中删除元素

我正在使用python 3.4并且只是学习基础知识,所以请耐心等待..

listA = [1,2]
for a in listA:
    listA.remove(a)
print(listA)
Run Code Online (Sandbox Code Playgroud)

假设我得到一个空列表,但我得到的是一个值为'2'的列表.我用大号调试代码.列表中的值以及列表具有单个元素时for循环退出.为什么最后一个元素没有从列表中删除..?

python list python-3.x

2
推荐指数
1
解决办法
3407
查看次数

以人类可读的格式显示选择字段

在网页中,这呈现为

状态:我

如何在 django 模板中显示长名称“Initiated”?

在我的模板中

<p>Status: {{ transaction.status }}</p>
Run Code Online (Sandbox Code Playgroud)

模型.py

class Transaction(models.Model):
    creator = models.SlugField()
    amount = models.DecimalField(max_digits= 999,decimal_places =2,null= True,default=0)
    accepted_by = models.SlugField()
    oferto_slug = models.SlugField()
    STATUSES = (
        ('i', 'Initiated'),
        ('a', 'Accepted'),
        ('d', 'Delivered'),
        ('c', 'Cancelled'),
    )
    status = models.CharField(choices=STATUSES, default='i',max_length=10)


views.py
 def __init__():
    self.state = 'i'
Run Code Online (Sandbox Code Playgroud)

python django

1
推荐指数
1
解决办法
1258
查看次数

如何python正则表达式匹配以下?

1<assume tab here>Algebra I<assume tab here>START
1.1 What are the Basic Numbers? 1-1
Run Code Online (Sandbox Code Playgroud)

对于上面两行中的每一行,我如何正则表达式只匹配包括"?"在内的数字.从本质上讲,我想要以下几组:

["1", "Algebra I"]
["1.1", "What are the Basic Numbers?"]
Run Code Online (Sandbox Code Playgroud)

匹配所有内容,包括问号,或最多为"制表符".如何使用单个正则表达式执行此操作?

python regex

1
推荐指数
1
解决办法
64
查看次数