【发布时间】:2018-05-24 17:00:38
【问题描述】:
我想从文本语料库中删除所有非字典英语单词。我已经删除了停用词,对数据进行了标记化和计数向量化。我只需要提取英文单词并将它们附加回数据框。
data['Clean_addr'] = data['Adj_Addr'].apply(lambda x: ' '.join([item.lower() for item in x.split()]))
data['Clean_addr']=data['Clean_addr'].apply(lambda x:"".join([item.lower() for item in x if not item.isdigit()]))
data['Clean_addr']=data['Clean_addr'].apply(lambda x:"".join([item.lower() for item in x if item not in string.punctuation]))
data['Clean_addr'] = data['Clean_addr'].apply(lambda x: ' '.join([item.lower() for item in x.split() if item not in (new_stop_words)]))
cv = CountVectorizer( max_features = 200,analyzer='word')
cv_addr = cv.fit_transform(data.pop('Clean_addr'))
我正在使用的文件的示例转储
【问题讨论】:
-
你如何定义英语?应该删除像 Zaaba 和 Robeco 这样的专有名称吗?您需要多大的英语词典(OED 有几十万字,英语维基百科有几百万个独特的标记,其中一些可能不是英语)?
-
@tripleee 我要删除专有名称和中文名称
-
@pankaj,为了让你的算法识别一个单词是中文还是英文,你需要定义一个包含英文/中文单词的数据库,你的算法可以在它找到的单词之间进行比较数据库中的单词。请注意,如果不定义什么是中文单词,什么是英文单词,您的算法无法自行计算出这些内容。
-
@Flika205,我们可以在 NLTK 中为您提供英文单词语料库
标签: pandas scikit-learn nlp