2012-08-30 17 views

Respuesta

10

Pagar la biblioteca inflect 0.2.4.

INFLECT 0.2.4

generar correctamente plurales, sustantivos singulares, ordinales, indefinidos artículos; convertir números a palabras

+1

Eso es genial. No tenía ni idea. – David

+5

@Ashwini: inflect.py puede * generar * plurales, pero ¿puede * detectar * plurales? – Hugo

2

No dice si su problema es palabras o palabras aisladas en el contexto de oraciones en idioma inglés.

Por ejemplo "la oveja" podría ser simple o plural. Sin embargo:

La oveja estaba en el campo

es singular y

Las ovejas estaban en el campo

es plural.

Para este último necesita un etiquetador de voz parcial, que identificará los roles de los nombres en la oración. Hay muchos gratuitos y comerciales y Wikipedia tiene an excellent list. NLTK es probablemente la elección natural para Python.

Si solo tiene palabras aisladas, lo mejor que puede hacer es consultar los muchos diccionarios (como Wordnet que indicará las formas de sustantivos en singular y plural).

5

Ashwini se refirió a la útil biblioteca inflect, pero no explicó cómo comprobar si una palabra dada está en forma plural o singular.

Si sabe que la palabra es o bien un singular o plural que puede utilizar:

singular_noun(word) 

Esto devolverá False si la palabra no es un espacio plural, por lo tanto, su palabra debe ser, en teoría singular.

Observe las deficiencias que se muestran en mis ejemplos cuando se trata de plurales clásicos, formas que pueden ser singulares o plurales, y el hecho de que devolverá False para formularios no reconocidos en general.

import inflect 
inflect = inflect.engine() 

english_words = ["hat", "hats", 
       "hero", "heroes", 
       "cherry", "cherries", 
       "dish", "dishes", 
       "stadium", "stadia", "stadiums", 
       "mitochondrion", "mitochondria", 
       "sheep", "a sheep", "the sheep", 
       "whjkjhkjh", "msipelling"] 

for en in english_words: 
    if inflect.singular_noun(en) is False: 
     print (en, "is singular") 
    else: 
     print (en, "is plural") 

>>> 
hat is singular 
hats is plural 
hero is singular 
heroes is plural 
cherry is singular 
cherries is plural 
dish is singular 
dishes is plural 
stadium is singular 
stadia is singular 
stadiums is plural 
mitochondrion is singular 
mitochondria is singular 
sheep is plural 
a sheep is plural 
the sheep is plural 
whjkjhkjh is singular 
+0

'some_boolean_value es False' es anti-patrón, use' not some_boolean_value' en su lugar –

Cuestiones relacionadas