如何从文件中删除非英语单词?

How do I remove non-English words from a file?

我正在尝试处理一个包含 2 列文本和类别的文件。从文本列中,我需要删除非英语单词。我是 Python 的新手,如果对如何执行此操作有任何建议,我将不胜感激。我的文件有 60,000 行实例。

我可以到达下面的这一点,但需要有关如何前进的帮助

这段代码应该可以解决问题。

import pandas
import requests
import string

# The following link contains a text file with the 20,000
# most frequent words in english, one in each line.
DICTIONARY_URL = 'https://raw.githubusercontent.com/first20hours/' \
                 'google-10000-english/master/20k.txt'
PATH = r"C:\path\to\file.csv"
FILTER_COLUMN_NAME = 'username'
PRINTABLES_SET = set(string.printable)

def is_english_printable(word):
    return PRINTABLES_SET >= set(word)

def prepare_dictionary(url):
    return set(requests.get(url).text.splitlines())

DICTIONARY = prepare_dictionary(DICTIONARY_URL)
df = pandas.read_csv(PATH, encoding='ISO-8859-1')
df = df[df[FILTER_COLUMN_NAME].map(is_english_printable) &
        df[FILTER_COLUMN_NAME].map(str.lower).isin(DICTIONARY)]

如果要删除非英文字符,例如标点符号、符号或任何其他语言的脚本,可以使用 String 模块的 isalpha() 方法。

    words=[word.lower() for word in words if word.isalpha()]

要删除无意义的英文单词,您可以继续@Infinity 建议,但创建一个包含 20,000 个单词的词典将无法涵盖所有​​场景。

由于这个问题被标记为文本挖掘,你可以select一个类似于你正在使用的语料库的来源,找到来源中的所有单词,然后继续@Infinity 方法。