Разделить абзац на хинди без пунктуации на предложения в Python - PullRequest
0 голосов
/ 02 ноября 2018

Я пытался разбить абзац, написанный на языке хинди, на предложения. Проблема в том, что не все предложения в этом параграфе заканчиваются на '|' поэтому идея использовать split () не удалась. Кто-нибудь может порекомендовать какое-нибудь решение?

Вот параграф:

उपयोग सभी विषयों पर प्रामाणिक और उपयोग, परिवर्तन व पुनर्वितरण के लिए स्वतन्त्र ज्ञानकोश का का एक बहुभाषीय प्रकल्प है। यह यथासम्भव निष्पक्ष दृष्टिकोण वाली सूचना प्रसारित करने के लिए कृतसंकल्प है। जनवरी अंग्रेज़ी विकिपीडिया जनवरी 2001 में आरम्भ किया गया था, और हिन्दी विकिपीडिया का शुभारम्भ जुलाई में 2003 में हुआ। 100 पृष्ठ सहायता जाएं और प्रयोगस्थल प्रयोग प्रयोग देखें कि आप किसी लेख कैसे परिवर्तित कर 100 100 100 100

Вот мой код:

import codecs

class Tokenizer():
def __init__(self,text):
    self.text=text.decode('utf-8')
    self.clean_text()
    self.sentences=[]
    self.final_list=[]
    self.bsentences=[]
    self.asentences=[]
    self.final_sentences=self.bsentences+self.asentences

def readFromFile(self,filename):
    f=codecs.open(filename,encoding='utf-8')
    self.text=f.read()
    self.clean_text()

def print_sentences(self,sentences):
        for i in self.sentences:
            print i.encode('utf-8')

def cleanText(self):
    text=self.text
    text=re.sub(r'(\d+)',r'',text)
    text=text.replace(u',','')
    text=text.replace(u'"','')
    text=text.replace(u'"','')
    text=text.replace(u':','')
    text=text.replace(u"'",'')
    text=text.replace(u"‘‘",'')
    text=text.replace(u"’’",'')
    text=text.replace(u"''",'')
    text=text.replace(u".",'')
    self.text=text

def getSentence(self):
    text=self.text
    self.bsentences=text.split(u"।")
    sw=codecs.open("stopwords.txt",encoding='utf-8')
    stopwords=[x.strip() for x in sw.readlines()]
    sentences=[s for s in sw.readlines() if s in enumerate(stopwords)]
    return self.final_sentences

t=Tokenizer('')
t.readFromFile('sample.txt')
t.getSentences()
t.print_sentences()

1 Ответ

0 голосов
/ 11 декабря 2018
def sentencesplit_hindi(paragraph):
        import re
        sentenceEnders = re.compile(ur"""(?:(?<=[\|!?])|(?<=[\।]))\s+""",re.MULTILINE |re.UNICODE)
        sentenceList = sentenceEnders.split(paragraph)
        return sentenceList    
...