POS-теги Stanford CoreNLP по-французски - PullRequest
0 голосов
/ 04 сентября 2018

Я ищу способ использовать Pos-теги для французских предложений с Python. Я видел, что мы можем использовать Stanford CoreNLP, но после нескольких поисков в Google я не нашел реальных примеров, которые могли бы удовлетворить меня .. Было бы здорово иметь кусок кода, который показывает мне, как решить мою проблему

1 Ответ

0 голосов
/ 05 сентября 2018

Существует множество оболочек Python для Stanford CoreNLP. Здесь есть список (вместе с обертками для других языков). Сначала вам нужно запустить сервер Stanford CoreNLP . Вот немного кода, который использует pycorenlp :

from pycorenlp import StanfordCoreNLP

nlp = StanfordCoreNLP('http://localhost:9000')

text = "Ceci est un test de l'étiqueteur morpho-syntaxique du français."

output = nlp.annotate(text, properties={
  'annotators': 'tokenize, ssplit, pos',
  'outputFormat': 'json'
  })

from pprint import pprint
pprint(output)

Результатом является структура данных JSON (вы можете выбрать другие форматы, указав другое значение для свойства outputFormat, например, 'text', 'xml' ...) со всеми аннотациями, включая теги POS ( pos атрибут для каждого токена), следующим образом:

{'sentences': [{'index': 0,
                'tokens': [{'after': ' ',
                            'before': '',
                            'characterOffsetBegin': 0,
                            'characterOffsetEnd': 4,
                            'index': 1,
                            'originalText': 'Ceci',
                            'pos': 'NNP',
                            'word': 'Ceci'},
                           {'after': ' ',
                            'before': ' ',
                            'characterOffsetBegin': 5,
                            'characterOffsetEnd': 8,
                            'index': 2,
                            'originalText': 'est',
                            'pos': 'NNP',
                            'word': 'est'},
                           {'after': ' ',
                            'before': ' ',
                            'characterOffsetBegin': 9,
                            'characterOffsetEnd': 11,
                            'index': 3,
                            'originalText': 'un',
                            'pos': 'JJ',
                            'word': 'un'},
                           {'after': ' ',
                            'before': ' ',
                            'characterOffsetBegin': 12,
                            'characterOffsetEnd': 16,
                            'index': 4,
                            'originalText': 'test',
                            'pos': 'NN',
                            'word': 'test'},
                           {'after': ' ',
                            'before': ' ',
                            'characterOffsetBegin': 17,
                            'characterOffsetEnd': 19,
                            'index': 5,
                            'originalText': 'de',
                            'pos': 'IN',
                            'word': 'de'},
                           {'after': ' ',
                            'before': ' ',
                            'characterOffsetBegin': 20,
                            'characterOffsetEnd': 32,
                            'index': 6,
                            'originalText': "l'étiqueteur",
                            'pos': 'JJ',
                            'word': "l'étiqueteur"},
                           {'after': ' ',
                            'before': ' ',
                            'characterOffsetBegin': 33,
                            'characterOffsetEnd': 50,
                            'index': 7,
                            'originalText': 'morpho-syntaxique',
                            'pos': 'JJ',
                            'word': 'morpho-syntaxique'},
                           {'after': ' ',
                            'before': ' ',
                            'characterOffsetBegin': 51,
                            'characterOffsetEnd': 53,
                            'index': 8,
                            'originalText': 'du',
                            'pos': 'NNP',
                            'word': 'du'},
                           {'after': '',
                            'before': ' ',
                            'characterOffsetBegin': 54,
                            'characterOffsetEnd': 62,
                            'index': 9,
                            'originalText': 'français',
                            'pos': 'NN',
                            'word': 'français'},
                           {'after': '',
                            'before': '',
                            'characterOffsetBegin': 62,
                            'characterOffsetEnd': 63,
                            'index': 10,
                            'originalText': '.',
                            'pos': '.',
                            'word': '.'}]}]}
...