nltk выписанные числа обрабатывают? - PullRequest
0 голосов
/ 14 октября 2019

Как nltk работает с записанными числами? кажется, что он ведет себя не очень предсказуемо.

nltk.pos_tag(["one"])
[('one', 'CD')] # note: CD = "cardinal" (number)
nltk.pos_tag(["two"])
[('two', 'CD')]
nltk.pos_tag(["three"])
[('three', 'CD')]
nltk.pos_tag(["four"])
[('four', 'CD')]
nltk.pos_tag(["five"])
[('five', 'CD')]
nltk.pos_tag(["six"])
[('six', 'CD')]
nltk.pos_tag(["ten"])
[('ten', 'NNS')] # "NNS" = "noun, common, plural"
nltk.pos_tag(["eleven"])
[('eleven', 'RB')] # "adverb"
nltk.pos_tag(["twelve"])
[('twelve', 'NN')] # "noun, common, singular or mass"
nltk.pos_tag(["thirteen"])
[('thirteen', 'NN')]
nltk.pos_tag(["nineteen"])
[('nineteen', 'NN')]
nltk.pos_tag(["twenty"])
[('twenty', 'NN')]
nltk.pos_tag(["twenty-one"])
[('twenty-one', 'NN')]
nltk.pos_tag(["hundred"])
[('hundred', 'VBN')] # "verb, past participle"
nltk.pos_tag(["thousand"])
[('thousand', 'NN')]
nltk.pos_tag(["million"])
[('million', 'CD')]
nltk.pos_tag(["billion"])
[('billion', 'CD')]
nltk.pos_tag(["quadrillion"])
[('quadrillion', 'NN')]
nltk.pos_tag(["quintillion"])
[('quintillion', 'NN')]

Это связано с моей попыткой определить глаголы в предложении, и "сотня" была признана как глагол. Это только из-за окончания "ed"? Если да, то это просто очень простая функция или это ошибка?

Я не думаю, что могу положиться на этот пакет, если что-то тривиальное, например, «сотня», не так, и этого не ожидается.

inspect.getsource(nltk.pos_tag) показывает, что это просто завернутый вызов _pos_tag, определение которого я нигде не могу найти

...