Python 3.x 矢量化标记化法语文本
我已使用Python 3.x 矢量化标记化法语文本,python-3.x,nlp,spacy,Python 3.x,Nlp,Spacy,我已使用Spacy标记化了法语文本,但无法使用TFidfvectoriser进行矢量化 我尝试了这个代码,但它给出了错误 矢量器.fit_变换(data.spacyd) “spacy.tokens.doc.doc”对象没有属性“lower”看起来您正在向矢量器传递一个spacyDocument对象(而不是字符串的iterable)。因此,您需要首先提取每个文档的标记 尝试类似列表理解的方法,首先获取可传递给矢量器的令牌字符串列表(token.text提供空间中令牌的文本): vectorizer
Spacy
标记化了法语文本,但无法使用TFidfvectoriser进行矢量化
我尝试了这个代码,但它给出了错误
矢量器.fit_变换(data.spacyd)
“spacy.tokens.doc.doc”对象没有属性“lower”看起来您正在向矢量器传递一个spacyDocument
对象(而不是字符串的iterable)。因此,您需要首先提取每个文档的标记
尝试类似列表理解的方法,首先获取可传递给矢量器的令牌字符串列表(token.text
提供空间中令牌的文本):
vectorizer.fit\u转换([token.text代表data.spacyd中的token])
如果data.spacyd
中有多个Document
,则只需对上述内容进行调整,以迭代每个文档即可
from sklearn.feature_extraction.text import TfidfVectorizer
french_text = ["Les astronomes amateurs jouent également un rôle important en recherche", "John Richard Bond explique le rôle de l'astronomie."]
french_token = [x.split() for x in french_text] # i have just use space for splitting
#assuming your token as
print(french_token)
[['Les',
'astronomes',
'amateurs',
'jouent',
'également',
'un',
'rôle',
'important',
'en',
'recherche'],
['John', 'Richard', 'Bond', 'explique', 'le', 'rôle', 'de', "l'astronomie."]]
现在对于矢量化部分,标识函数将传递您的令牌,而不会
标记化预处理器并将其传递为None,小写=False
def identity(arg):
'''
this function will return same arg
'''
return arg
vect = TfidfVectorizer(tokenizer = identity, preprocessor=None,lowercase = False)
vect.fit_transform(french_token)
def identity(arg):
'''
this function will return same arg
'''
return arg
vect = TfidfVectorizer(tokenizer = identity, preprocessor=None,lowercase = False)
vect.fit_transform(french_token)