#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()] . Но это показывает, что «слово» не определено. Отличается ли этот код от того, что вы имели в виду?