在Python中分离马拉雅拉姆语句边界?

时间:2016-12-13 14:16:13

标签: python nlp

我有一个unicode编码的malayalam文本文件说a.txt。我将该文本文件中的每个单词存储到列表中。所以列表包含文本中的每个单词。

例如

text="അവള്‍ പൊട്ടിക്കരഞ്ഞുകൊണ്ട് നൈല്‍ നദീതീരം മുഴുവന്‍ തന്‍റെ
      കാമുകന്‍റെ ശരീരഭാഗങ്ങള്‍ക്കായി അലഞ്ഞുനടന്നു. ഒരുപക്ഷെ, മറെറാരു
      പുരാണ-ഐതിഹ്യ കാവ്യങ്ങളിലും ഇത്ര ഹൃദയസ്പര്‍ശിയായ ഒരു തിരച്ചിലിന്‍റെ
      കഥ വിവരിക്കപ്പെട്ടിട്ടുണ്ടാവില്ല." 

但句子边界也附在句子的最后一个单词上。像[അലഞ്ഞുനടന്നു.] 我想像[അലഞ്ഞുനടന്നു] [.] [വിവരിക്കപ്പെട്ടിട്ടുണ്ടാവില്ല] [.]

那样分开

我这样做

with codecs.open(r"C:\Users\cusat\Documents\Python Scripts\test document.txt",encoding="utf-8") as fpnr:
        text=fpnr.read() 
        text_of_sentences=segmentize(text)
        fpnr.close()  

    for sentence in text_of_sentences:
        if len(sentence) > 1:
            sentences.append(worder(sentence))
            #print sentences


    for sentence in sentences:
        #print sentence
        for word in sentence:
            #print word
            trimdwrds=trim(word)
            wordses.append(trimdwrds)
    for word in wordses:
           if len(word) >= 1:
               re.sub(r'([\u0900-\u097F]+)(\.)(\s*)', r'\1 \2', word)  

1 个答案:

答案 0 :(得分:2)

import re

words = [word for word in re.split('\s|(\.)', text) if word]

print(words)

['അവള്', 'പൊട്ടിക്കരഞ്ഞുകൊണ്ട്', 'നൈല്', 'നദീതീരം', 'മുഴുവന്', 'തന്റെ', 'കാമുകന്റെ', 'ശരീരഭാഗങ്ങള്ക്കായി', 'അലഞ്ഞുനടന്നു', '.', 'ഒരുപക്ഷെ,', 'മറെറാരു', 'പുരാണ-ഐതിഹ്യ', 'കാവ്യങ്ങളിലും', 'ഇത്ര', 'ഹൃദയസ്പര്ശിയായ', 'ഒരു', 'തിരച്ചിലിന്റെ', 'കഥ', 'വിവരിക്കപ്പെട്ടിട്ടുണ്ടാവില്ല', '.']

这会将您的text字符串拆分为空格或.,但它会保留.,因为它位于正则表达式中的捕获组中。然后它从分割中过滤掉空字符串。