Неправильное определение Hunspell для некоторых аффиксов на итальянском - PullRequest
0 голосов
/ 30 октября 2018

Я использую hunspell для обнаружения орфографии. Согласно документам аффикс корректно обрабатывается для определенного языка, когда в этом словаре определено правило. В случае итальянского словаря it_IT у меня есть проблема с предлогом all в предложении, подобном all'orizzonte, где вывод похож на

{
          "word": "all",
          "stems": [],
          "suggestion": [
            "al",
            "alla",
            "allo",
            "alle",
            "hall",
            "ala",
            "ali",
            "alo",
            "alt",
            "alò",
            "alé",
            "al l"
          ],
          "correct": false,
          "analysis": []
        },
    {
          "word": "orizzonte",
          "stems": [
            "orizzonte"
          ],
          "suggestion": [],
          "correct": true,
          "analysis": [
            " st:orizzonte"
          ]
        }

Обратите внимание, что analysis здесь не возвращает никакого результата морфологического анализа. Это будет работать в других случаях, например, в предложении un'aquilone, неопределенный артикль un будет правильно обнаружен

{
          "word": "un",
          "stems": [
            "un"
          ],
          "suggestion": [],
          "correct": true,
          "analysis": [
            " st:un"
          ]
        },
        {
          "word": "aquilone",
          "stems": [
            "aquilone"
          ],
          "suggestion": [],
          "correct": true,
          "analysis": [
            " st:aquilone"
          ]
        }

Я использую агрессивный токенизатор плюс пользовательские правила для диакритических знаков для итальянского языка, поэтому он будет правильно разделять токены, то есть all'orizzonte становится [all, orizzonte], а un'aquilone становится ['un', 'aquilone'] - ПРИМЕЧАНИЕ: это не TreeBank, как токенизатор

Я проверил словарь аффиксов для it_IT и вижу, что для all у меня есть

PFX T 0 all' [aeiouhAEIOUH]
PFX T a all'A a
PFX T e all'E e
PFX T i all'I i
PFX T o all'O o
PFX T u all'U u
PFX T h all'H h

как для un:

PFX U 0 un' [aeiouhAEIOUH]
PFX U a un'A a
PFX U e un'E e
PFX U i un'I i
PFX U o un'O o
PFX U u un'U u
PFX U h un'H h

Итак, я предполагаю, что all должно работать, но это не так.

...