У меня более 30000 статей на французском языке в файле JSON.Я хотел бы провести анализ текста как по отдельным статьям, так и по сектору в целом.Прежде чем идти дальше, я начну с простых целей:
- Определите важные объекты (люди, места, концепции)
- Найдите существенные изменения в важности (~ = частота)эти объекты с течением времени (используя порядковый номер статьи в качестве прокси для времени)
Шаги, которые я предпринял до сих пор:
Импортированные данные всписок питонов:
import json
json_articles=open('articlefile.json')
articlelist = json.load(json_articles)
Выделил одну статью для тестирования и объединил основной текст в одну строку:
txt = ' '.join(data[10000]['body'])
Загрузил токенизатор французского предложения и разбил строку на список предложений:
nltk.data.load('tokenizers/punkt/french.pickle')
tokens = [french_tokenizer.tokenize(s) for s in sentences]
Попытка разбить предложения на слова с помощью WhiteSpaceTokenizer:
from nltk.tokenize import WhitespaceTokenizer
wst = WhitespaceTokenizer()
tokens = [wst.tokenize(s) for s in sentences]
Вот где я застрял по следующим причинам:
- В NLTK нет встроенного токенизатора, который может разбивать французский на слова.Пробелы не работают хорошо, в частности из-за того, что они не будут правильно разделяться на апострофах.
- Даже если бы я использовал регулярные выражения для разделения на отдельные слова, нет французского PoS (части речи) тег, который я могу использовать, чтобы пометить эти слова, и никакой возможности разбить их на логические единицы значения
Для английского языка я мог бы пометить и разбить текст на части так:
tagged = [nltk.pos_tag(token) for token in tokens]
chunks = nltk.batch_ne_chunk(tagged)
Мои основные параметры (в порядке текущих предпочтений) выглядят следующим образом:
- Используйте nltk-trainer для обучения моего собственного тегера и чанкера.
- Используйте оболочку Python для TreeTagger только для этой части, поскольку TreeTagger уже может пометить французский, а кто-то написал оболочку, которая вызывает двоичный файл TreeTagger и анализирует результаты.
- Используйте другой инструмент в целом.
Если бы я сделал (1), я бы подумал, что мне нужно было бы создать свой собственный помеченный корпус.Правильно ли это, или можно (и будет ли это возможно) использовать French Treebank?
Если формат French Treebank corpus ( пример здесь ) не подходит для использования с nltk-trainerВозможно ли преобразовать его в такой формат?
Какие подходы франкоговорящих пользователей NLTK приняли к тегу PoS и чанку?