如何在python中将阿拉伯语文本拆分或标记成句子

2024-09-26 17:56:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我的问题我需要把阿拉伯语文本拆分或标记成句子,即每个句子以(.)结尾,然后标记成单词。输出如下图所示。我怎样才能修好它呢。在

text = """ طوقت الشرطة المكان، عقب انتهاء الوقت المحدد لهم بالمغادرة. وكان المهاجرون يسعون إلى   الوصول إلى بريطانيا، ويقولون إنه ليس أمامهم مكان آخر ليذهبوا إليه، بعد تدمير المخيمات. وكانت عدة حافلات تقل عشرات من أفراد الشرطة قد وصلت صباح الأربعاء إلى المخيمات. وتشارك الشرطة الآن في المواجهة مع النشطاء هناك، بحسب ما ذكره مراسل بي بي سي، بول آدمز، الموجود في المكان."""
posttext = text.decode('utf-8')
sentences = nltk.tokenize.wordpunct_tokenize(posttext)
print sentences


the output is :
[u'\u0637\u0648\u0642\u062a', u'\u0627\u0644\u0634\u0631\u0637\u0629', u'\u0627\u0644\u0645\u0643\u0627\u0646', u'\u060c', u'\u0639\u0642\u0628', u'\u0627\u0646\u062a\u0647\u0627\u0621', u'\u0627\u0644\u0648\u0642\u062a', u'\u0627\u0644\u0645\u062d\u062f\u062f', u'\u0644\u0647\u0645', u'\u0628\u0627\u0644\u0645\u063a\u0627\u062f\u0631\u0629', u'.', u'\u0648\u0643\u0627\u0646', u'\u0627\u0644\u0645\u0647\u0627\u062c\u0631\u0648\u0646', u'\u064a\u0633\u0639\u0648\u0646', u'\u0625\u0644\u0649', u'\u0627\u0644\u0648\u0635\u0648\u0644', u'\u0625\u0644\u0649', u'\u0628\u0631\u064a\u0637\u0627\u0646\u064a\u0627', u'\u060c', u'\u0648\u064a\u0642\u0648\u0644\u0648\u0646', u'\u0625\u0646\u0647', u'\u0644\u064a\u0633', u'\u0623\u0645\u0627\u0645\u0647\u0645', u'\u0645\u0643\u0627\u0646', u'\u0622\u062e\u0631', u'\u0644\u064a\u0630\u0647\u0628\u0648\u0627', u'\u0625\u0644\u064a\u0647', u'\u060c', u'\u0628\u0639\u062f', u'\u062a\u062f\u0645\u064a\u0631', u'\u0627\u0644\u0645\u062e\u064a\u0645\u0627\u062a', u'.', u'\u0648\u0643\u0627\u0646\u062a', u'\u0639\u062f\u0629', u'\u062d\u0627\u0641\u0644\u0627\u062a', u'\u062a\u0642\u0644', u'\u0639\u0634\u0631\u0627\u062a', u'\u0645\u0646', u'\u0623\u0641\u0631\u0627\u062f', u'\u0627\u0644\u0634\u0631\u0637\u0629', u'\u0642\u062f', u'\u0648\u0635\u0644\u062a', u'\u0635\u0628\u0627\u062d', u'\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621', u'\u0625\u0644\u0649', u'\u0627\u0644\u0645\u062e\u064a\u0645\u0627\u062a', u'.', u'\u0648\u062a\u0634\u0627\u0631\u0643', u'\u0627\u0644\u0634\u0631\u0637\u0629', u'\u0627\u0644\u0622\u0646', u'\u0641\u064a', u'\u0627\u0644\u0645\u0648\u0627\u062c\u0647\u0629', u'\u0645\u0639', u'\u0627\u0644\u0646\u0634\u0637\u0627\u0621', u'\u0647\u0646\u0627\u0643', u'\u060c', u'\u0628\u062d\u0633\u0628', u'\u0645\u0627', u'\u0630\u0643\u0631\u0647', u'\u0645\u0631\u0627\u0633\u0644', u'\u0628\u064a', u'\u0628\u064a', u'\u0633\u064a', u'\u060c', u'\u0628\u0648\u0644', u'\u0622\u062f\u0645\u0632', u'\u060c', u'\u0627\u0644\u0645\u0648\u062c\u0648\u062f', u'\u0641\u064a', u'\u0627\u0644\u0645\u0643\u0627\u0646', u'.']

Tags: u0644u0627u0648u0646u0631u0628u0639u062a
2条回答

我建议使用nltk.sent_tokenize(text),如下所示:

>>> text = """ طوقت الشرطة المكان، عقب انتهاء الوقت المحدد لهم بالمغادرة. وكان المهاجرون يسعون إلى   الوصول إلى بريطانيا، ويقولون إنه ليس أمامهم مكان آخر ليذهبوا إليه، بعد تدمير المخيمات. وكانت عدة حافلات تقل عشرات من أفراد الشرطة قد وصلت صباح الأربعاء إلى المخيمات. وتشارك الشرطة الآن في المواجهة مع النشطاء هناك، بحسب ما ذكره مراسل بي بي سي، بول آدمز، الموجود في المكان."""
>>> text = re.sub("؟", "?", text) # replace any ؟ with ?
>>> for sen in nltk.sent_tokenize(text):
...     print(sen)
 طوقت الشرطة المكان، عقب انتهاء الوقت المحدد لهم بالمغادرة.
وكان المهاجرون يسعون إلى   الوصول إلى بريطانيا، ويقولون إنه ليس أمامهم مكان آخر ليذهبوا إليه، بعد تدمير المخيمات.
وكانت عدة حافلات تقل عشرات من أفراد الشرطة قد وصلت صباح الأربعاء إلى المخيمات.
وتشارك الشرطة الآن في المواجهة مع النشطاء هناك، بحسب ما ذكره مراسل بي بي سي، بول آدمز، الموجود في المكان.

我们已将“؟”替换为“?”{cd2>英语只起作用。在

旁注

句子标记化和你描述的不同。例如,假设以下句子:

^{pr2}$

当应用你所建议的(根据文本进行拆分)时,首字母缩略词“ا.د”将被拆分,这可能会导致不可预测的结果。还有。不是分割句子的唯一分隔符。。。还有!然后呢?在

为什么不只是:

text = " وقت الشرطة المكان، عقب انتهاء الوقت المحدد لهم بالمغادرة. وكان المهاجرون يسعون لى   الوصول إلى بريطانيا، ويقولون إنه ليس أمامهم مكان آخر ليذهبوا إليه، بعد تدمير المخيمات. وكانت عدة حافلات تقل عشرات من أفراد الشرطة قد وصلت صباح الأربعاء إلى المخيمات. وتشارك الشرطة الآن في المواجهة مع النشطاء هناك، بحسب ما ذكره مراسل بي بي سي، بول آدمز، الموجود في المكان."
posttext = text.decode('utf-8')

sentences = text.split(".")
for sentence in sentences:
    print sentence

相关问题 更多 >

    热门问题