Spacy-带有重音符号的解释文本

时间:2019-01-18 14:33:25

标签: python nlp spacy

我正忙于分析法语中的某些文本。

以某种方式,在我的数据中,所有带有重音符号的字符都被替换为它们的非重音符号(例如:réserve-> reserve)。

因此,当我尝试标记字符串并检索引理时,spacy无法识别我的非重音术语。

import spacy
nlp = spacy.load('fr')

doc_accented = u'réserve moi une chambre'
[token.lemma_ for token in nlp_test(doc_accented) if token.is_punct==False and token.is_space==False and token.is_stop==False]
# Returns : [u'réserver', u'chambrer']

doc_not_accented = u'reserve moi une chambre'
[token.lemma_ for token in nlp_test(doc_not_accented) if token.is_punct==False and token.is_space==False and token.is_stop==False]
# Returns : [u'reserve', u'chambrer']

我试图通过从现有条目中删除所有重音并复制其属性来向词汇表中添加新条目。

import unicodedata

def strip_accents(s):
    return ''.join(c for c in unicodedata.normalize('NFD', s) if unicodedata.category(c) != 'Mn')

attr_list = ['a list of attributes']

for el in nlp.vocab.strings:
     normalized_str = strip_accents(el)
     lexeme = nlp_test.vocab[normalized_str]

     for attr in attr_list:
         setattr(lexeme, attr, getattr(nlp.vocab[el], attr))

您知道是否有一种编辑词汇表的方法,例如u'reserve可以被spacy解释为u'réserve'吗?

泽维尔

0 个答案:

没有答案