我想在泰卢固语和印地语中应用计数向量器,但向量器会自动对单词进行分词。
count_vect = CountVectorizer()
xv=count_vect.fit_transform(['she is a good girl','वो बहुत सुन्दर है','ఇది చాలా లాడిష్ మరియు బాల్య టీనేజ్ కుర్రాళ్ళు మాత్రమే దీనిని ఫన్నీగా చూడవచ్చు', 'దోపిడీ మరియు ఎక్కువగా లోతు లేదా అధునాతనత లేని నేరాలకు సంబంధించిన గ్రాఫిక్ చికిత్సను చూడటం భరించదగినది'])
count_vect.get_feature_names()
输出结果如下。
['girl',
'good',
'is',
'she',
'दर',
'बह',
'అధ',
'ఇద',
'ఎక',
'చదగ',
'డట',
'డవచ',
'తనత',
'నద',
'ఫన',
'భర',
'మర',
'రమ',
'లక',
'వగ',
'సన']
很明显,它自动将泰卢固语和印地语的词干化,有什么办法可以避免吗?
使用的分析器 CountVectorizer()
似乎很不支持某些编码。你可以定义一个自定义的分析器,来定义如何分离单词。为了正确地分离单词,你可以使用一个regex。
import regex
def custom_analyzer(text):
words = regex.findall(r'\w{2,}', text) # extract words of at least 2 letters
for w in words:
yield w
count_vect = CountVectorizer(analyzer = custom_analyzer)
xv = count_vect.fit_transform(['she is a good girl','वो बहुत सुन्दर है','ఇది చాలా లాడిష్ మరియు బాల్య టీనేజ్ కుర్రాళ్ళు మాత్రమే దీనిని ఫన్నీగా చూడవచ్చు', 'దోపిడీ మరియు ఎక్కువగా లోతు లేదా అధునాతనత లేని నేరాలకు సంబంధించిన గ్రాఫిక్ చికిత్సను చూడటం భరించదగినది'])
count_vect.get_feature_names()