Arhn - архитектура программирования

Составление словаря слов из большого текста

У меня есть текстовый файл, содержащий сообщения на английском/итальянском языках. Я хотел бы прочитать сообщения в матрице данных, чтобы каждая строка представляла сообщение, а каждый столбец - слово. Ячейки в матрице — это подсчет того, сколько раз каждое слово появляется в сообщении. Словарь должен состоять из всех слов всего файла или неполного англо-итальянского словаря.

Я знаю, что это общий важный шаг предварительной обработки для НЛП. И я знаю, что кодировать его довольно тривиально, но я хотел бы использовать какой-нибудь инструмент, специфичный для предметной области NLP, чтобы обрезать стоп-слова и т. Д.

Кто-нибудь знает об инструменте\проекте, который может выполнить эту задачу?

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

06.04.2010

  • известна как матрица Срок-Документ. 07.04.2010

Ответы:


1

Возможно, вы захотите взглянуть на GATE. Это инфраструктура для интеллектуального анализа и обработки текста. Вот что делает GATE (я взял это с сайта):

  • программное обеспечение с открытым исходным кодом, способное решить практически любую задачу обработки текста
  • зрелое и обширное сообщество разработчиков, пользователей, преподавателей, студентов и ученых
  • определенный и повторяемый процесс для создания надежных и удобных в сопровождении рабочих процессов обработки текста
  • в активном использовании для всевозможных задач и приложений обработки языка, в том числе: голос заказчика; исследования рака; исследование наркотиков; поддержка при принятии решения; прием на работу; веб-майнинг; извлечение информации; семантическая аннотация
  • результат многомиллионной программы исследований и разработок, запущенной с 1995 года и финансируемой коммерческими пользователями, ЕС, BBSRC, EPSRC, AHRC, JISC и т. д.
  • используется корпорациями, малыми и средними предприятиями, исследовательскими лабораториями и университетами по всему миру
  • затмение инженерии естественного языка, Lucene извлечения информации, ISO 9001 интеллектуального анализа текста
06.04.2010

2

То, что вам нужно, настолько просто, что в большинстве языков я бы предложил вам создать собственное решение, используя массив хэш-таблиц, которые отображают строки в целые числа. Например, в С#:

foreach (var post in posts)
{
  var row = new Dictionary<string, int>();

  foreach (var word in GetWordsFromPost(post))
  {
    IncrementContentOfRow(row, word);
  }
}

// ...

private void IncrementContentOfRow(IDictionary<string, int> row, string word)
{
  int oldValue;
  if (!row.TryGet(word, out oldValue))
  {
    oldValue = 0;
  }

  row[word] = oldValue + 1;
}
06.04.2010
  • вы правы :-) ... тем не менее, я надеялся использовать некоторые инструменты, специфичные для предметной области НЛП, чтобы обрезать стоп-слова. Я обновлю свой вопрос 07.04.2010
  • Я думаю, что GATE сделает большую часть этой работы за вас (удалив часто используемые слова). 07.04.2010
  • @LiorH: Круто. @Vivin Paliath: Согласен, если вы хотите сделать больше, чем первоначально было указано в вопросе, то GATE, вероятно, является хорошим способом. 07.04.2010
  • или вы можете использовать это решение, но просто добавите удаление стоп-слов самостоятельно, используя один из списков из en.wikipedia. org/wiki/Стоп-слова 07.04.2010
  • @ealdent: я бы всегда шел по этому пути, потому что легче протестировать код, которым вы владеете, чем код, которого у вас нет, но я понимаю, почему ОП хочет пойти другим путем. 08.04.2010

  • 3

    Вы можете проверить:

    07.04.2010

    4

    Благодаря комментарию @Mikos я погуглил термин «матрица терминов-документов» и нашел TMG (генератор текста в матрицу).

    Я нашел его подходящим для моих нужд.

    09.04.2010
    Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..