Как я могу очистить урду данных корпус Python без NLTK
У меня более 10000 слов в урду. Теперь я хочу очистить мои данные. В моем тексте появляются специальные унифицированные данные, такие как "! Data co data", когда я использую регулярные выражения, это дает мне ошибку, что ваши данные не в зашифрованном виде. Пожалуйста, предоставьте мне некоторую помощь для очистки моих данных. Спасибо
Вот мои примеры данных:
ظہیر
احمد
ماہرہ
خان
کی,
تصاویر,
نے
دائیں
اور
بائیں
والوں
کو
آسمانوں
پر
پہنچایا
, ہوا
ہے.
دائیں?
والے
1 ответ
Я использовал ваш образец, чтобы найти все слова с ہ
или же ر
Обратите внимание, что мне пришлось сообщить python, что я имею дело с данными utf-8, используя u перед строкой регулярных выражений, а также строкой данных
import re
data = u"""
ظہیر
احمد
ماہرہ
خان
.....
"""
result = re.findall(u'[^\s\n]+[ہر][^\s\n]+',data,re.MULTILINE)
print(result)
Выход был
['ظہیر', 'ماہرہ', 'تصاویر،', 'پہنچایا', '،ہوا']
другой пример, удаляет все ни один алфавит, кроме пробелов и гарантирует, что только один пробел разделяет слова
result = re.sub(' +',' ',re.sub(u'[\W\s]',' ',data))
print(result)
выход
ظہیر احمد ماہرہ خان کی تصاویر نے دائیں اور بائیں والوں کو آسمانوں پر پہنچایا ہوا ہے دائیں والے
Вы также можете использовать слово Tokanizer,
import nltk
result = nltk.tokenize.wordpunct_tokenize(data)
print(result)
выход будет
['ظہیر', 'احمد', 'ماہرہ'
, 'خان', 'کی', '،', 'تصاویر'
, '،', 'نے', 'دائیں', 'اور', 'بائیں', 'والوں'
, 'کو', 'آسمانوں', 'پر', 'پہنچایا'
, '،', 'ہوا', 'ہے', '۔', 'دائیں', '؟', 'والے']
Edit ... для Python 2.7 вы должны указать кодировку в начале файла кода, а также сказать re
что регулярное выражение 'Unicode' с помощью re.UNICODE
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
import re
data = u"""ظہیر
احمد
ماہرہ
خان
کی،
.....
"""
result = re.sub(ur'\s+',u' ',re.sub(ur'[\W\s]',ur' ',data,re.UNICODE),re.UNICODE)
print(result)
также обратите внимание на использование ur''
указать строку является регулярным выражением Unicode