python - 如何从python中的阿拉伯字符串中删除英文文本?

标签 python lambda nlp

我有一个带有英文文本和标点符号的阿拉伯字符串。我需要过滤阿拉伯语文本,我尝试使用 sting 删除标点符号和英文单词。但是,我丢失了阿拉伯语单词之间的间距。我哪里错了?

import string
exclude = set(string.punctuation)

main_text = "وزارة الداخلية: لا تتوفر لدينا معلومات رسمية عن سعوديين موقوفين في ليبيا http://alriyadh.com/1031499"
main_text = ''.join(ch for ch in main_text if ch not in exclude)
[output after this step="وزارة الداخلية لا تتوفر لدينا معلومات رسمية عن سعوديين موقوفين في ليبيا httpalriyadhcom1031499]"
n = filter(lambda x: x not in string.printable, n)
print n
وزارةالداخليةلاتتوفرلدينامعلوماترسميةعنسعوديينموقوفينفيليبيا

我可以删除标点符号和英文文本,但我丢失了单词之间的空格。如何保留每个单词?

最佳答案

您可以使用

保存字符串中的空格
n = filter(lambda x: True if x==' ' else x not in string.printable , main_text)

n = filter(lambda x: x==' ' or x not in string.printable , main_text)

这将检查字符是否为空格,如果不是则检查它是否可打印。

关于python - 如何从python中的阿拉伯字符串中删除英文文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29406247/

相关文章:

macosX下的python : Validation: mapped file has no cdhash,完全未签名?代码必须至少经过临时签名

python - 在 python 中对字典进行排序并将结果作为字典返回

Ruby:从 block 中产生 block ?

python - unittest 中的 assertRaises 没有正确捕获异常

python - 使用带有 `map` 的多个参数的函数

python-3.x - NLTK - 类型错误 : tagged_words() got an unexpected keyword argument 'simplify_tags'

Python 元组而不是列表

python - Sklearn CountVectorizer : keeping emojis as words

java - 如何使用 Stemmer 或 Lemmatizer 来提取特定单词的词干

python - 如何在 django 1.6 上安装 django-cms 3