Как оценить качество (соскобленного) предложения? - PullRequest
0 голосов
/ 11 ноября 2018

Я выполняю подпрограмму очистки и обработки в Python3 - но некоторые из предложений, которые я получаю, являются мусором - я хотел бы отказаться от них, но не могу понять, как это сделать.

Я использую POS-теги и чанкинг с NLTK, но это, похоже, не помогает мне определять недействительные предложения. Количество NN, VB и т. Д. В мусорном «предложении», похоже, ничем не отличается от хорошего.

Полагаю, я просто ищу простой метод для оценки грамматики предложения и отклонения из-за слишком большого количества "ошибок". Я пытался использовать grammar_check, но AWS Lambda не любит его запускать. Я сразу же получаю сообщение об ошибке «Отказано в соединении», как только я его инициализирую. (Для работы на AWS Lambda также нужно «подделать» NLTK, но я нашел, как это сделать).

Примеры: ХОРОШО: «Манчестер Юнайтед» босс Жозе Моуринью сказал своим игрокам «повзрослеть», чтобы прекратить уступать на ранних этапах в играх после их побед с «Ньюкаслом Борнмутом» и «Ювентусом»

GARBAGE: [последние результаты, принесенные вам сыгранными 42 тиражами 8 etihad stadium manchester old trafford manchester etihad stadium manchester старый trafford manchester etihad stadium manchester нет доступных материалов возвращение к тренировкам после победы в манчестерском дерби внешняя ссылка city draw fc basel in the UCL раунд 16 отчет по внешней ссылке: объединились 1-2 городская внешняя ссылка город выиграл захватывающее дерби, чтобы переместиться на 11 очков

Спасибо за любой совет.

1 Ответ

0 голосов
/ 16 ноября 2018

У меня есть начало ответа на этот вопрос, но это не простой или прямой рецепт "сделай так".

Метод, который я пытаюсь разработать более детально, сводится к формулированию ряда ограничений на правильно сформированные предложения. Вы не можете перечислить все возможные виды шума в корпусе, но вы можете удалить определенные виды шума с помощью определенных типов фильтров, многие из которых идеально просты для понимания и реализации.

Например:

  • Откажитесь от образцов с очень низкой энтропией
  • Отменить образцы с символами или последовательностями символов за пределами обычного репертуара английского языка
  • Откажитесь от сэмплов со многими повторными словами
  • Откажитесь от семплов с множеством конечных глаголов.
    • Я подготовил последние два, просто глядя на ваш единственный пример, но, конечно, невозможно сказать, будет ли это работать в общем случае без доступа к большему количеству образцов или всего вашего корпуса.

Прототип этого метода был опубликован в материалах LREC 2016 (полезно, материалы опубликованы под мягкой CC BY-NC 4.0 лицензия) : аннотация , но материалы были ограничены максимум четырьмя страницами, поэтому статья по необходимости является очень кратким обзором. Мои фактические материалы и сценарии на Github: https://github.com/rcv2/rcv2r1;, но корпус, который я использовал, не подлежит распространению, так что часть отсутствует.

Приложение A содержит краткий каталог предлагаемых ограничений.

...