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

Следовательно, в наши дни очень важно генерировать краткие резюме или выделять статьи. Резюме имеет 2 разновидности: Извлекающее и Абстрактное резюме.

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

Что такое векторы слов?

Вектор слова — это математический подход к представлению слова, и, следовательно, мы можем вычислить векторы предложений, которые представляют полные предложения. Существуют различные методы, с помощью которых мы можем это сделать, такие как Glove, Word2vec, fastText, преобразователи предложений и т. д. Вы можете выбрать любой метод в зависимости от вычислительной мощности, использования и задачи. Именно с помощью этих векторов слов мы можем выполнять сложные задачи, такие как распознавание речи и машинный перевод.

Традиционные подходы НЛП, такие как однократное кодирование, tf-idf или методы набора слов, не фиксируют контекст текстовой информации и, следовательно, не фиксируют близость слов в тексте.

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

В этом блоге мы сосредоточимся на векторах fastText.

Что такое фасттекст?

источник: https://fasttext.cc/

FastText — это бесплатная легкая библиотека с открытым исходным кодом, которая позволяет пользователям изучать текстовые представления и текстовые классификаторы. Он работает на стандартном универсальном оборудовании. Позже модели можно уменьшить в размерах, чтобы они поместились даже на мобильных устройствах.

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

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

Обратите внимание, что вы можете обучить свою собственную модель fastText на своем пользовательском наборе данных.

Пожалуйста, следуйте этому руководству для обучения вашей собственной модели.

источник: https://fasttext.cc/docs/en/unsupervised-tutorial.html

Теперь давайте перейдем к основной теме этого блога, кластеризации с использованием K-средних и векторов слов.

Этапы реализации:

  1. Импорт необходимых библиотек

2. Загрузка модели Fasttext

3. Некоторая минимальная предварительная обработка, это может быть сделано в соответствии с требованиями. Я только что представил этот шаг, чтобы люди могли настроить свою собственную функцию предварительной обработки, я едва касаюсь верхушки айсберга.

4. Определение необходимых функций для расчета расстояния между центроидными векторами и другими векторами в том же кластере. Другая функция определена для вычисления вложений из модели, которую мы определили ранее.

5. Напишите функцию кластеризации для расчета кластеров, давайте немного углубимся в этот фрагмент кода.

Шаги:

а) обобщить предложения

б) некоторая предварительная обработка (вы можете выбрать свои шаги)

c) преобразование его в DataFrame, определение столбцов, применение вложений предложений к предложениям и преобразование столбца внедрения в массив для подготовки к кластеризации

г) назначать кластеры, вычислять среднее значение кластера и вычислять расстояние от среднего значения для каждой векторной точки

e) выберите верхнее предложение в каждом кластере, используя вектор с кратчайшим расстоянием от центра тяжести кластера, и, следовательно, у вас есть наиболее релевантные предложения в каждом кластере.

Пожалуйста, дайте мне знать, если вы обнаружите какую-либо проблему с блогом, она будет исправлена.

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