📜  文本文件到单词生成器 - Python (1)

📅  最后修改于: 2023-12-03 14:55:02.851000             🧑  作者: Mango

文本文件到单词生成器 - Python

本文将介绍如何使用Python编写一个可以将文本文件转换为单词的生成器。

准备工作

在开始编写代码之前,需要先准备好以下内容:

  1. 一台已经安装了Python的计算机;
  2. 一个待处理的文本文件;
  3. 安装了必要的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编写一个文本文件到单词生成器十分简单,我们只需要简单地准备好数据,预处理文本,然后统计单词的出现次数即可。