
Os formulários de palavras podem gerar com precisão todas as formas possíveis de uma palavra em inglês. Pode conjugar verbos. Ele pode conectar diferentes partes de discursos, por exemplo, substantivo ao adjetivo, adjetivo ao advérbio, substantivo ao verbo etc. Ele pode pluralizar substantivos singulares. Faz tudo isso em uma função. Aproveitar!
Alguns exemplos muito oportunos: P
> >> from word_forms . word_forms import get_word_forms
> >> get_word_forms ( "president" )
> >> { 'n' : { 'presidents' , 'presidentships' , 'presidencies' , 'presidentship' , 'president' , 'presidency' },
'a' : { 'presidential' },
'v' : { 'preside' , 'presided' , 'presiding' , 'presides' },
'r' : { 'presidentially' }}
> >> get_word_forms ( "elect" )
> >> { 'n' : { 'elects' , 'electives' , 'electors' , 'elect' , 'eligibilities' , 'electorates' , 'eligibility' , 'elector' , 'election' , 'elections' , 'electorate' , 'elective' },
'a' : { 'eligible' , 'electoral' , 'elective' , 'elect' },
'v' : { 'electing' , 'elects' , 'elected' , 'elect' },
'r' : set ()}
> >> get_word_forms ( "politician" )
> >> { 'n' : { 'politician' , 'politics' , 'politicians' },
'a' : { 'political' },
'v' : set (),
'r' : { 'politically' }}
> >> get_word_forms ( "am" )
> >> { 'n' : { 'being' , 'beings' },
'a' : set (),
'v' : { 'was' , 'be' , "weren't" , 'am' , "wasn't" , "aren't" , 'being' , 'were' , 'is' , "isn't" , 'been' , 'are' , 'am not' },
'r' : set ()}
> >> get_word_forms ( "ran" )
> >> { 'n' : { 'run' , 'runniness' , 'runner' , 'runninesses' , 'running' , 'runners' , 'runnings' , 'runs' },
'a' : { 'running' , 'runny' },
'v' : { 'running' , 'run' , 'ran' , 'runs' },
'r' : set ()}
> >> get_word_forms ( 'continent' , 0.8 ) # with configurable similarity threshold
> >> { 'n' : { 'continents' , 'continency' , 'continences' , 'continent' , 'continencies' , 'continence' },
'a' : { 'continental' , 'continent' },
'v' : set (),
'r' : set ()}Como você pode ver, a saída é um dicionário com quatro teclas. "R" significa advérbio, "a" para adjetivo ", n" para substantivo e "v" para verbo. Não me pergunte por que "R" significa advérbio. É isso que o WordNet usa, então é por isso que também o uso :-)
A ajuda pode ser obtida a qualquer momento digitando o seguinte:
> >> help ( get_word_forms )No processamento e busca na linguagem natural, é necessário tratar palavras como "Run" e "Ran", "Love" e "Lovable" ou "Politician" e "Politics" como a mesma palavra. Isso geralmente é feito reduzindo algoritmicamente cada palavra em uma palavra base e comparando as palavras básicas. O processo é chamado Stemming. Por exemplo, o candidato porter reduz tanto o "amor" quanto o "adorável" na palavra base "amor".
Os Stemmers têm várias deficiências. Em primeiro lugar, a palavra base produzida pelo The Stemmer nem sempre é uma palavra em inglês válida. Por exemplo, o candidato porter reduz a palavra "operação" para "operar". Em segundo lugar, os Stemmers têm uma alta taxa de falsa negativa. Por exemplo, "Run" é reduzido para "Run" e "Ran" é reduzido para "Ran". Isso acontece porque os Stemmers usam um conjunto de regras racionais para encontrar as palavras básicas e, como todos sabemos, o idioma inglês nem sempre se comporta muito racionalmente.
Os lematizadores são mais precisos que os Stemmers porque produzem uma forma base presente no dicionário (também chamado de Lema). Portanto, a palavra reduzida é sempre uma palavra em inglês válida. No entanto, os lematizadores também têm falsos negativos porque não são muito bons em conectar palavras em diferentes partes dos discursos. O Lemmatizer WordNet incluído no NLTK falha em quase todos esses exemplos. "Operações" é reduzido a "operação" e "operar" é reduzido para "operar".
Os formulários de palavras tentam resolver esse problema, encontrando todas as formas possíveis de uma determinada palavra em inglês. Ele pode executar conjugações verbais, conectar formulários substantivos a formas verbais, formas adjetivas, formas de advérbio, planizar formas singulares etc.
Também oferecemos um Lemmatizer muito simples com base em word_forms . Aqui está como usá -lo.
> >> from word_forms . lemmatizer import lemmatize
> >> lemmatize ( "operations" )
'operant'
> >> lemmatize ( "operate" )
'operant'Aproveitar!
Testado no Python 3
Usando pip :
pip install -U word_forms
Ou você pode instalá -lo da fonte:
git clone https://github.com/gutfeeling/word_forms.git
pip ou setup.py pip install -e word_forms
% or
cd word_forms
python setup.py install
Olá, sou dibya e mantenho esse repositório. Eu adoraria ouvir de você. Sinta -se à vontade para entrar em contato comigo em [email protected].
As formas de palavra não são perfeitas. Em particular, alguns aspectos podem ser melhorados.
Se você gosta deste pacote, fique à vontade para contribuir. Suas solicitações de tração são bem -vindas.