2017-02-05 36 views
1

Я использую NLTK и TextBlob найти существительные и словосочетания в тексте:Python: NLTK и TextBlob на французском

from textblob import TextBlob 
import nltk 

blob = TextBlob(text) 
print(blob.noun_phrases) 
tokenized = nltk.word_tokenize(text) 
nouns = [word for (word, pos) in nltk.pos_tag(tokenized) if is_noun(pos)] 
print(nouns) 

Это прекрасно работает, если мой текст на английском языке, но это не уедешь, если мой текст на французском языке.

Мне не удалось найти способ адаптации этого кода для французского языка, как это сделать?

И есть ли список где-нибудь из всех языков, которые можно разобрать?

+0

У вас есть два отдельных фрагмента кода. Один использует «TextBlob» (строки 1 и 2). Другой использует 'nltk' (строки 3-5). Какой из них не работает? – DyZ

+0

@DYZ работают с английским текстом, но оба не работают с французским текстом. С французским текстом Textblob сообщает существительные фразы, которые на самом деле не являются фразами, а nltk сообщает о словах, которые не являются существительными. – Sulli

ответ

1

Я предлагаю вам эту статью, которая может помочь решить проблему: http://blog.fouadhamdi.com/introduction-a-nltk/

+2

_Links для внешних ресурсов рекомендуется, но, пожалуйста, добавьте контекст вокруг ссылки, чтобы ваши соплеменники имели представление о том, что это такое и почему Это здесь. Всегда указывайте наиболее значимую часть важной ссылки, если целевой сайт недоступен или постоянно находится в автономном режиме. – Bugs

3

По умолчанию NLTK использует английский Tokenizer, который будет иметь странное или неопределенное поведение на французском языке.

@fpierron правильный. Если вы читаете статью, о которой идет речь, вам просто нужно загрузить правильную модель языка токенизатора и использовать ее в своей программе.

import nltk.data 
# chargement du tokenizer 
tokenizer = nltk.data.load('tokenizers/punkt/PY3/french.pickle') 
tokens = tokenizer.tokenize("Jadis, une nuit, je fus un papillon, voltigeant, content de son sort. Puis, je m’éveillai, étant Tchouang-tseu. Qui suis-je en réalité ? Un papillon qui rêve qu’il est Tchouang-tseu ou Tchouang qui s’imagine qu’il fut papillon ?") 

print(tokens) 

['Le', 'courage', 'de', 'la', 'goutte', 'd', "'", 'eau', ',', 'c', "'", 'est', 'qu', "'", 'elle', 'ose', 'tomber', 'dans', 'le', 'désert', '.'] 

Если вы не имеете правильный файл, вы можете использовать «nltk.download()», чтобы загрузить правильную модель для французского.

Если вы посмотрите на веб-сайт NLTKs на токенизаторе, есть и другие примеры. http://www.nltk.org/api/nltk.tokenize.html

 Смежные вопросы

  • Нет связанных вопросов^_^