📅  最后修改于: 2023-12-03 14:55:02.851000             🧑  作者: Mango
本文将介绍如何使用Python编写一个可以将文本文件转换为单词的生成器。
在开始编写代码之前,需要先准备好以下内容:
nltk
等。使用Python内置的open
函数读取文本文件。这里假设文本文件的路径为input.txt
,读取出来的字符串存放在text
变量中。
with open('input.txt', 'r', encoding='utf-8') as f:
text = f.read()
对于一段文本,我们需要对其进行一些预处理,以便于后续的单词生成。
首先,将文本转换为小写字母,以避免因为大小写不同而导致的单词重复。然后,使用nltk
库中的word_tokenize
函数将文本拆分成单词列表。最后,去除停用词和标点符号。
import nltk
nltk.download('punkt')
nltk.download('stopwords')
from nltk.corpus import stopwords
stop_words = set(stopwords.words('english'))
import string
lower_case = text.lower()
tokens = nltk.word_tokenize(lower_case)
tokens = [token.strip(string.punctuation) for token in tokens]
filtered_tokens = [token for token in tokens if token not in stop_words and len(token) > 2]
对于预处理后的文本,我们可以使用Python中的Counter
类来统计其中每个单词出现的次数。
from collections import Counter
word_counts = Counter(filtered_tokens)
最后,将生成的单词及其出现次数保存至一个新的文本文件中。
with open('output.txt', 'w', encoding='utf-8') as f:
for word, count in word_counts.items():
f.write(f'{word}: {count}\n')
import nltk
nltk.download('punkt')
nltk.download('stopwords')
from nltk.corpus import stopwords
stop_words = set(stopwords.words('english'))
import string
from collections import Counter
with open('input.txt', 'r', encoding='utf-8') as f:
text = f.read()
lower_case = text.lower()
tokens = nltk.word_tokenize(lower_case)
tokens = [token.strip(string.punctuation) for token in tokens]
filtered_tokens = [token for token in tokens if token not in stop_words and len(token) > 2]
word_counts = Counter(filtered_tokens)
with open('output.txt', 'w', encoding='utf-8') as f:
for word, count in word_counts.items():
f.write(f'{word}: {count}\n')
使用Python编写一个文本文件到单词生成器十分简单,我们只需要简单地准备好数据,预处理文本,然后统计单词的出现次数即可。