如何在Python中删除非英语单词?

时间:2018-03-27 10:49:36

标签: python pandas twitter nlp sentiment-analysis

我正在使用Python进行情感分析项目(使用自然语言处理)。我已经从twitter收集了数据并将其保存为CSV文件。该文件包含推文,主要是关于加密货币。我清理了数据,但在使用分类算法应用情绪分析之前还有一件事。这是导入库的输出

# importing Libraries
from pandas import DataFrame, read_csv
import chardet
import matplotlib.pyplot as plt; plt.rcdefaults()
from matplotlib import rc
%matplotlib inline
import pandas as pd
plt.style.use('ggplot')
import numpy as np
import re
import warnings

#Visualisation
import matplotlib.pyplot as plt
import matplotlib
import seaborn as sns
from IPython.display import display
from mpl_toolkits.basemap import Basemap
from wordcloud import WordCloud, STOPWORDS

#nltk
from nltk.stem import WordNetLemmatizer
from nltk.sentiment.vader import SentimentIntensityAnalyzer
from nltk.sentiment.util import *
from nltk import tokenize
from sklearn.feature_extraction.text import TfidfVectorizer
from nltk.stem.snowball import SnowballStemmer


matplotlib.style.use('ggplot')
pd.options.mode.chained_assignment = None
warnings.filterwarnings("ignore")

%matplotlib inline

    ## Reading CSV File and naming the object called crime
ltweet=pd.read_csv("C:\\Users\\name\\Documents\\python assignment\\litecoin1.csv",index_col = None, skipinitialspace = True)
print(ltweet)

我已经清理了大部分数据,因此无需为该部分添加代码。在我的专栏中,有一些推文主要包含非英语语言。我想删除所有这些(仅限非英文文本)。这是输出例如

ltweet['Tweets'][0:3]

output:
0      the has published a book on understanding العَرَبِيَّة‎
1      accepts litecoin gives % discount on all iphon...
2      days until litepay launches accept store and s...
3           ltc to usd price litecoin ltc cryptocurrency

有没有办法删除数据中的非英语单词?任何人都可以帮我写代码吗?顺便说一句,代码基于Pandas。

1 个答案:

答案 0 :(得分:0)

There has been a similar question here.

您可以尝试enchant

import enchant
d = enchant.Dict("en_US")
word = "Bonjour"
d.check(word)

这将返回" False"。

对文本中的每个单词执行此操作:

english_words = []
for word in text:
    if d.check(word):
        english_words.append(word)

编辑:注意以多种语言显示的字词。