tutorial spanish lib español ejemplo python-2.7 nlp nltk wordnet

python 2.7 - spanish - ¿Cómo probar si una palabra está en singular o no en python?



wordnet python (2)

Asumiendo que quiere una solución en inglés, puede hacer algo similar a la solución de 2er0 un poco más directamente con pattern-en :

from pattern.en import singularize def isplural(pluralForm): singularForm = singularize(pluralForm) plural = True if pluralForm is not singularForm else False return plural, singularForm nounls = [''geese'', ''mice'', ''bars'', ''foos'', ''foo'', ''families'', ''family'', ''dog'', ''dogs''] for pluralForm in nounls: isp, singularForm = isplural(pluralForm) print pluralForm, singularForm, isp

que salidas

geese goose True mice mouse True bars bar True foos foo True foo foo False families family True family family False dog dog False dogs dog True

la única diferencia en el resultado entre la solución de 2er0 y esto es

foos foo True

ya que su solución emite False , como señaló, ya que foos no está en wordnet (y no es una palabra en inglés en absoluto).

Estoy tratando de ver si una palabra está en forma singular o en plural usando nltk pos_tag. Pero los resultados no son precisos.

Entonces, ¿necesito una forma de encontrar cómo se puede obtener si una palabra está en forma singular o en plural? además, lo necesito sin usar ningún paquete de Python.


Para el inglés, cada palabra debe de alguna manera tener un lema raíz donde la pluralidad predeterminada es singular.

Suponiendo que solo tiene sustantivos en su lista, puede intentar esto:

from nltk.stem import WordNetLemmatizer wnl = WordNetLemmatizer() def isplural(word): lemma = wnl.lemmatize(word, ''n'') plural = True if word is not lemma else False return plural, lemma nounls = [''geese'', ''mice'', ''bars'', ''foos'', ''foo'', ''families'', ''family'', ''dog'', ''dogs''] for nn in nounls: isp, lemma = isplural(nn) print nn, lemma, isp

Tendrá un problema cuando word esté fuera de wordnet , luego tendrá que usar un clasificador sofisticado o máquinas de estados finitos fuera de NLTK .