Пространство - интерпретировать текст с раздетыми акцентами - PullRequest
0 голосов
/ 18 января 2019

Я работаю с 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'?

Xavier

...