Nltk: Le fractionnement des phrases échoue dans certains cas de coin

Créé le 26 août 2019  ·  3Commentaires  ·  Source: nltk/nltk

Je comprends combien il est difficile de diviser des phrases qui contiennent des abréviations et que l'ajout d'abréviations peut avoir des pièges, comme il est joliment expliqué dans #2154. Cependant, je suis tombé sur quelques cas de coin sur lesquels j'aimerais poser des questions. Cela ressemble à l'utilisation de l'un des éléments suivants

  • par exemple
  • c'est à dire
  • et al.

dans la phrase divisera la phrase dans le mauvais sens.

Exemple pour ie et eg

>>> sentence = ("Even though exempli gratia and id est are both Latin "
                "(and therefore italicized), no need to put e.g. or i.e. in "
                "italics when they’re in abbreviated form.")
>>> sent_tokenize_list = sent_tokenize(sentence)                                                                                                                           

>>> sent_tokenize_list                                                                                                                                            
['Even though exempli gratia and id est are both Latin (and therefore italicized), no need to put e.g.',
 'or i.e.',
 'in italics when they’re in abbreviated form.']

Exemple pour et al.

>>> from nltk.tokenize import sent_tokenize
>>> sentence = ("If David et al. get the financing, we can move forward "
                "with the prototype. However, this is very unlikely be cause "
                "they did not publish sufficiently last year.")
>>> sent_tokenize_list = sent_tokenize(sentence)
>>> sent_tokenize_list
['If David et al.',
 'get the financing, we can move forward with the prototype.',
 'However, this is very unlikely because they did not publish sufficiently last year.']

Sur mon ordinateur portable, j'utilise nltk.__version__ 3.4.5.

À mon avis, ce problème est différent de #2154 car ce sont des abréviations bien connues et couramment utilisées (en particulier dans les cercles universitaires).

nice idea tokenizer

Commentaire le plus utile

Piratage rapide, suivant #2154

>>> import nltk
>>> punkt = nltk.data.load('tokenizers/punkt/english.pickle')
>>> punkt._params.abbrev_types.add('al')
>>> text = 'If David et al. get the financing, we can move forward with the prototype. However, this is very unlikely be cause they did not publish sufficiently last year.'
>>> punkt.tokenize(text)
['If David et al. get the financing, we can move forward with the prototype.', 
'However, this is very unlikely be cause they did not publish sufficiently last year.']

Mais c'est peut-être une bonne idée d'avoir un tokenizer de phrase amélioré (#2008, #1214) comme ce que nous avons fait avec le mot tokenizer (#2355).

Par exemple, nous pouvons facilement tous les nltk.corpus.nonbreaking_prefixes au punkt._params.abbrev_types dans un premier temps.

Tous les 3 commentaires

Piratage rapide, suivant #2154

>>> import nltk
>>> punkt = nltk.data.load('tokenizers/punkt/english.pickle')
>>> punkt._params.abbrev_types.add('al')
>>> text = 'If David et al. get the financing, we can move forward with the prototype. However, this is very unlikely be cause they did not publish sufficiently last year.'
>>> punkt.tokenize(text)
['If David et al. get the financing, we can move forward with the prototype.', 
'However, this is very unlikely be cause they did not publish sufficiently last year.']

Mais c'est peut-être une bonne idée d'avoir un tokenizer de phrase amélioré (#2008, #1214) comme ce que nous avons fait avec le mot tokenizer (#2355).

Par exemple, nous pouvons facilement tous les nltk.corpus.nonbreaking_prefixes au punkt._params.abbrev_types dans un premier temps.

J'étais sur le point d'ajouter un problème dans ce sens, mais j'ai vu que vous m'aviez devancé. Si/quand les gens parviennent à résoudre ce problème, je suggérerais de consulter la liste des abréviations latines ici :
https://en.wikipedia.org/wiki/List_of_Latin_abbreviations

Techniquement parlant, ces abréviations dans leur forme entièrement écrite et non abrégée, représentent des _expressions multi-mots_ (_MWEs_), non ? Je veux dire, d'accord, techniquement, ils représentent (également) des _modèles de phrases_ fixes, mais cela ne change pas leur statut MWE, donc, je me demande si #2202 pourrait aider à résoudre ce problème (même si j'ai l'impression que la réponse se résumera à "Non ")

(PS, faits amusants : « & al. » est un raccourcissement légal de « et al. », comme « &c. » est un raccourcissement légal de « etc. »)

Cette page vous a été utile?
0 / 5 - 0 notes