Как удалить неанглийские слова из текстовых данных в файле csv (python)

#python #non-english

#python #неанглийский

Вопрос:

Я пытаюсь удалить неанглийские слова из текстовых данных в файле csv. Для этого я использую Python.

Я прочитал файл csv, используя этот код:

 blogdata = pd.read_csv("C:/Users/hyoungm/Downloads/blogdatatest.csv", encoding = 'utf-16', sep = "t")
print(blogdata)
  

На данный момент осталось 10179 строк.

Затем я использовал следующий код для удаления неанглийских слов из данных, в частности, в столбце «публикация»:

 blogdata = blogdata[~blogdata['posting'].str.contains(r'[^x00-x7F] ')]
print(blogdata)
  

Затем у меня осталось только 3693 строки. Я думаю, что приведенный выше код удалил все строки, содержащие какие-либо неанглийские слова.

Я пытаюсь понять, как удалить эти неанглийские слова и сохранить другие части, чтобы я мог сохранить как можно больше строк.

Я делюсь набором данных на следующем веб-сайте: https://github.com/GemmyMoon/nonenglish

Может кто-нибудь, пожалуйста, помочь мне с этим?

Заранее благодарю вас!

Комментарии:

1. возможно, вам следует запустить свою функцию для каждой ячейки, и эта функция может заменить text ( blogdata['posting'].apply(your_function) ) .

2. Как предложил @furas, вам нужно будет сосредоточиться на posting поле ваших данных. Вам нужно будет разделить это на отдельные слова, а затем выбрать только те слова, которые проходят ваш фильтр.

3. Существует также pandas . Series.str.replace

4. Спасибо вам всем. То есть вы имеете в виду, что я должен сначала маркировать данные и фильтровать неанглийские слова? Я также пробовал следующие коды: import nltk nltk.download(‘words’) слова =[word. lower() для word в словах, если word.isalpha()] . Но это показывает, что «слово» не определено. Отличается ли этот код от того, что вы имели в виду?