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

时间:2015-04-02 06:19:48

标签: 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
وزارةالداخليةلاتتوفرلدينامعلوماترسميةعنسعوديينموقوفينفيليبيا

我能够删除标点符号和英文文本,但我丢失了单词之间的空格。我怎样才能保留每一个字?

2 个答案:

答案 0 :(得分:5)

您可以使用

保存字符串中的空格
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)

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

答案 1 :(得分:4)

您可以停止删除任何空格,如下所示:

n = filter(lambda x: x in string.whitespace or x not in string.printable, n)
相关问题