Любая лучшая библиотека предварительной обработки или реализация в python?

Мне нужно предварительно обработать некоторые текстовые документы, чтобы я мог применять методы классификации, такие как fcm и т. д., и другие методы тематического моделирования, такие как скрытое распределение Дирихле и т. д.

Чтобы немного уточнить предварительную обработку, мне нужно удалить стоп-слова, извлечь существительные и ключевые слова и выполнить поиск корней. Код, который я использовал для этой цели:

#--------------------------------------------------------------------------
#Extracting nouns
#--------------------------------------------------------------------------
for i in range (0,len(a)) :
    x=a[i]          
    text=nltk.pos_tag(nltk.Text(nltk.word_tokenize(x)))
    for noun in text:
        if(noun[1]=="NN" or noun[1]=="NNS"):
            temp+=noun[0]
            temp+=' '
documents.append(temp)
print documents

#--------------------------------------------------------------------------
#remove unnecessary words and tags
#--------------------------------------------------------------------------

texts = [[word for word in document.lower().split() if word not in stoplist]for    document in documents]
allTokens = sum(texts, [])
tokensOnce = set(word for word in set(allTokens) if allTokens.count(word)== 0)
texts = [[word for word in text if word not in tokensOnce]for text in texts]
print texts

#--------------------------------------------------------------------------
#Stemming
#--------------------------------------------------------------------------

for i in texts:
    for j in range (0,len(i)):        
        k=porter.stem(i[j])
        i[j]=k
print texts

Проблема с кодом, который я упомянул выше, заключается в

  1. В модуле nltk, используемом для извлечения существительных и ключевых слов, отсутствует много слов. Например, для некоторых документов была выполнена предварительная обработка, и такие имена, как «Сачин», не были распознаны как ключевые слова и пропущены после предварительной обработки.
  2. Слова не правильно составлены. Либо слишком много корней (сеть и сеть в сеть), и иногда существительные также имеют основу.

Есть ли лучший модуль для необходимых функций или лучшая реализация того же модуля? Пожалуйста, помогите


person Kai    schedule 23.04.2012    source источник


Ответы (1)


Попробуйте Паттерн, мне он очень нравится: http://www.clips.ua.ac.be/pages/pattern

person marbdq    schedule 26.04.2012