使用flashText库统计书本中出现的字符数

2024-06-02 22:05:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用的是运行python 3.7.4的windows计算机。 目前,我正在尝试使用flashText库来处理.txt文件,以统计我在处理文件时选择并出错的字符的出现次数

我的代码如下

from flashtext import KeywordProcessor
#making a dictionary of major charaters
#a few major players for now
keyword_processor = KeywordProcessor(case_sensitive=False)

keyword_dict = {
    "Eddard" : ["ned", "eddard"],
    "Daenerys" : ["dany", "khaleesi"],
    "john" : ["john snow", "bastard"],
    "Tyrion" : ['imp', 'halfman' , 'tyrion Lannister' ],
    "bran" : ['bran stark']

 }
keyword_processor.add_keywords_from_dict(keyword_dict)
text_file = open("gameofthrones.txt", "r" , encoding="utf8")

keywords_found = keyword_processor.extract_keywords(text_file)
print(keywords_found)

text_file.close()

我遇到了一个我不太理解的错误:

C:\Users\MLMir\Desktop\python>stackoverflow.py
Traceback (most recent call last):
  File "C:\Users\MLMir\Desktop\python\stackoverflow.py", line 24, in <module>
    keywords_found = keyword_processor.extract_keywords(text_file)
  File "C:\Users\MLMir\Anaconda3\lib\site-packages\flashtext\keyword.py", line 475, in extract_keywords
    sentence = sentence.lower()
AttributeError: '_io.TextIOWrapper' object has no attribute 'lower'

我尝试将其更改为列表,但这只是抛出了一个不同的属性错误


Tags: 文件textfrompytxtextractprocessorusers
2条回答

打开文本文件后,需要读取python中的文本文件

请尝试以下内容:

from flashtext import KeywordProcessor
#making a dictionary of major charaters
#a few major players for now
keyword_processor = KeywordProcessor(case_sensitive=False)

keyword_dict = {
    "Eddard" : ["ned", "eddard"],
    "Daenerys" : ["dany", "khaleesi"],
    "john" : ["john snow", "bastard"],
    "Tyrion" : ['imp', 'halfman' , 'tyrion Lannister' ],
    "bran" : ['bran stark']

 }
keyword_processor.add_keywords_from_dict(keyword_dict)
text_file = open("gameofthrones.txt",'r', encoding="utf8")

raw = text_file.read()

keywords_found = keyword_processor.extract_keywords(raw)
print(keywords_found)

text_file.close()

首先,在一个空文件中搜索关键字是没有意义的

其次,extract_关键字方法需要的是字符串,而不是文件。lower不是文件的一种方法

相关问题 更多 >