【发布时间】:2016-07-29 15:49:15
【问题描述】:
我必须阅读 Python 中包含英语和非英语(特别是马拉雅拉姆语)语言的文本文档。我看到以下内容:
>>>text_english = 'Today is a good day'
>>>text_non_english = 'ആരാണു സന്തോഷമാഗ്രഹിക്കാത്തത'
现在,如果我编写一个代码来提取第一个字母,使用
>>>print(text_english[0])
'T'
当我跑步时
>>>print(text_non_english[0])
�
要得到第一个字母,我必须写以下内容
>>>print(text_non_english[0:3])
ആ
为什么会这样? 我的目标是提取文本中的单词,以便我可以将其输入到 tfidf 转换器。当我从马拉雅拉姆语创建 tfidf 词汇表时,有些单词是不正确的两个字母。实际上,它们是完整单词的一部分。我应该怎么做才能使 tfidf 转换器采用完整的马拉雅拉姆语单词进行转换,而不是采用两个字母。
我为此使用了以下代码
>>>useful_text_1[1:3] # contains both English and Malayalam text
>>>vectorizer = TfidfVectorizer(sublinear_tf=True,max_df=0.5,stop_words='english')
# Learn vocabulary and idf, return term-document matrix
>>>vect_2 = vectorizer.fit_transform(useful_text_1[1:3])
>>>vectorizer.vocabulary_
词汇表中的一些单词如下:
ഷമ
സന
സഹ
ർക
ർത
词汇不正确。它没有考虑整个词。如何解决这个问题?
【问题讨论】:
-
你正在使用 Python2 。也许您想切换到 Python 3?
-
在 Python 3 上,
text_non_english[0] == 'ആ' -
@AnttiHaapala 好的。谢谢。这很有帮助。还有一个问题是 tfidf 转换器生成的词汇不正确,因为它没有考虑整个单词。如何纠正?
-
你在
useful_text_1[1:3]中进行psasing(2 个字节),你期待什么? -
@AnttiHaapala 实际上没有。有用的文本[1:3] 是一组两个句子。有用_text [1:3] = ['ആരാണുസന്തോഷമാഗ്രഹിക്കാത്തത്,പക്ഷെ,ഇനിയുംഭരണംവന്നാൽവലിയവിലവരുംചിലയിടത്ത്വരുംചിലയിടത്ത്......അഴിമതി......എന്തിനുഎന്തിനുനാംഇത്。 ഭരണം വരരുത്,വരാനനുവദിക്കരുത്','Manushyn aaya oru 首席部长,athu njangal idhehathil kaanunnoo']。
标签: python utf-8 scikit-learn tf-idf text-processing