Ne kökü ayırıcı veya lemmatizer greatest
dan alabilirsiniz ->great
:
>>> from nltk.stem import WordNetLemmatizer
>>> from nltk.stem import WordNetLemmatizer, PorterStemmer
>>> porter = PorterStemmer()
>>> wnl = WordNetLemmatizer()
>>> greatest = 'greatest'
>>> porter.stem(greatest)
u'greatest'
>>> wnl.lemmatize(greatest)
'greatest'
>>> greater = 'greater'
>>> wnl.lemmatize(greater)
'greater'
>>> porter.stem(greater)
u'greater'
Ama greatest -> great
almak PennTreeBank Tagset bazı güzel özellikleri yararlanabilirler gibi görünüyor:
>>> from nltk import pos_tag
>>> pos_tag(['greatest'])
[('greatest', 'JJS')]
>>> pos_tag(['greater'])
[('greater', 'JJR')]
>>> pos_tag(['great'])
[('great', 'JJ')]
>>> import re
>>> word1 = 'greatest'
>>> re.sub('est$', '', word1)
'great'
>>> re.sub('est$', 'er', word1)
'greater'
>>> pos_tag([re.sub('est$', '', word1)])[0][1]
'JJ'
>>> pos_tag([re.sub('est$', 'er', word1)])[0][1]
'JJR'
>>> word1
'greatest'
:
en greatest
başlayalım, en çılgın kural tabanlı sistem deneyelim
Kendi küçük üstünlüklü kökleştiricimizi/lemmatizer/tail_substituter'ımızı oluşturabileceğimizi biliyoruz, bir kelime üstün bir POS etiketi veriyorsa ve tail_substituter
bizim açtığımız zaman JJ'yi ve dönüştüğümüzde JJR'yi bize verirse bir kural yazalım. güvenle kelimenin karşılaştırmalı ve baz formu kolayca bizim tail_substituter
ile kazanılmış edilebileceğini söyleyebiliriz:
>>> if pos_tag([word1])[0][1] == 'JJS' \
... and pos_tag([re.sub('est$', '', word1)])[0][1] == 'JJ' \
... and pos_tag([re.sub('est$', 'er', word1)])[0][1] == 'JJR':
... comparative = re.sub('est$', 'er', word1)
... adjective = re.sub('est$', '', word1)
...
>>> adjective
'great'
>>> comparative
'greater'
Şimdi bu greatest -> greater -> great
sizi alır. great -> best
'dan, sıradan akrabaları ilişkili olsa da, sözcüksel olarak ilişkili olmadıklarından, bir tür gariplik söz konusudur.
Yani ben o
great -> best
Lemmatize, kök olmayan geçerli bir dönüşüm olduğunu söylemek sübjektif olacağını düşünüyorum. Ayrıca, "hangi masa ... duyu?" –
Muhtemelen en iyisi büyük bir konuşma konuşmacısı tarafından yapılabilir JJ, JJR, JJS burada https://gate.ac.uk/sale/tao/splitap7.html#x39-802000G. Gerçekten çok önerilen bir öneri olarak, kelime toplamalarına bakabilirsiniz: https://code.google.com/p/word2vec/ Yakın kelimeler eş anlamlı değildir ancak belki de modelin ayarlanması ve doğru veriler üzerinde eğitim eş anlamlılar oluşturabilir . Veya eş anlamlılar ve kelime kümeleri arasındaki kesişme olsun. – Yasen