Строчная лемматизация с простотой на немецком языке - PullRequest
1 голос
/ 06 апреля 2020

Кажется, есть проблема с сингуляризацией существительного с spacy в немецком языке. Пространство, кажется, полагается на слова, которые должны быть написаны с заглавной буквы, чтобы признать их как существительные. Пример:

import spacy
nlp = spacy.load("C:\\Users\\somepath\\spacy\\de_core_md\\de_core_news_md\\de_core_news_md-2.2.5")

def lemmatize_text(text):
    """returns the text with each word in its basic form"""
    doc = nlp(text)
    return [word.lemma_ for word in doc]

lemmatize_text('Das Wort Tests wird erkannt. Allerdings werden tests nicht erkannt')
--> ['der', 'Wort', 'Test', 'werden', 'erkennen', '.', 'Allerdings', 'werden', 'tests', 'nicht', 'erkennen']

# should say 'Test' for both sentences

Это не было бы проблемой, если бы я сразу же использовал лемматизацию исходного текста. Однако моя предварительная обработка выглядит следующим образом:

  1. поворот в нижний регистр
  2. удаление пунктуации
  3. удаление стоп-слов
  4. лемматизация

Есть ли рекомендуемый порядок выполнения вышеуказанных шагов?

Я не лемматизирую первым, потому что слова в начале предложения не распознаются правильно:

lemmatize_text('Größer wird es nicht mehr. größer wird es nicht mehr.')
--> ['Größer', 'werden', 'ich', 'nicht', 'mehr', '.', 'groß', 'werden', 'ich', 'nicht', 'mehr', '.']

# should say 'groß' for both sentences
...