繁体   English   中英

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

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

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

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

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

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

要删除无意义的英语单词,您可以继续使用 @Infinity 建议,但创建一个包含 20,000 个单词的字典并不能涵盖所有情况。

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

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

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)]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM