Общий подход к сокращению текста с использованием машинного обучения ⇐ Python
-
Гость
Общий подход к сокращению текста с использованием машинного обучения
У меня есть требование сократить текст так, чтобы получилось длинное предложение, например:
В отличие от двухмерных объектов, трехмерные объекты имеют третье измерение, глубина и поэтому не плоские. Кубики, Сферы и пирамиды — примеры трехмерных объектов.
с помощью следующих шагов:
[*]Возьмите длинное предложение и разбейте его на осмысленные предложения по 3–5. слова. [*]Разбейте выбранные слова на слоги. [*]Удалить слоги (необязательный шаг) (это может быть случайным образом для каждого человека, и каждый человек может выбрать удаление по-разному на другой экземпляр). Я застрял на этом этапе, в алгоритме и изучаю для этого Soundex. [*]Объедините или сократите оставшиеся слоги, чтобы создать единое слово или жаргон.
После описанных выше шагов приведенное выше предложение разбивается на подобные предложения и после удаления слогов сокращается до чего-то похожего, например:
[*]В отличие от двухмерных объектов --> Untdimaljects [*]трехмерные объекты имеют --> трехмерные объекты [*]третье измерение, глубина и суть --> Thirdimdepar [*]поэтому не плоский. Кубы, сферы и пирамиды --> флубесфорфемиды [*]примеры трехмерных объектов. --> plesthreemaljects
Использование моделей машинного обучения. Я пытался найти соответствующие источники данных, но не нашел.
Я также создал последовательную модель Keras, вручную сократив 25 предложений, разбив их на предложения и для каждого предложения самостоятельно создав аббревиатуру, но точность обученной модели удручающе низка ~0,2
Поэтому у меня остается единственный вариант — создать набор данных с помощью алгоритма, в котором я буду использовать 1000 случайных предложений для создания набора данных и, в свою очередь, создам свою модель машинного обучения.
Я использовал библиотеку spaCy и nltk, чтобы разбить предложение на noun_chunks и создать фразы, так что приведенное выше предложение имеет вид:< /п> ['в отличие от двухмерных объектов', 'трехмерные объекты', 'третьи глубина измерения», «поэтому не плоские», «кубы сферы пирамиды примеры», «трехмерные объекты»]
Затем я использую nltk SyllableTokenizer, чтобы разбить приведенные выше фразы на слоги, например
['не нравится двухмерный объект', 'трехмерный объект', 'третий di mens глубина», «там не плоская», «куба сферическая пирамида xampl', 'трехмерный объект']
Сейчас я застрял здесь, чтобы отбросить слоги, используя фиксированный подход, чтобы оставшаяся часть по-прежнему была запоминающейся и читабельной.
Любая помощь в направлении:
[*]мой общий подход к обучению окончательной модели. [*]любые доступные в общедоступной базе данных [*]Любые существующие подобные работы.
Будем признательны.
Примечание Я нашел эту работу, которая делает противоположное, то есть находит исходное предложение из аббревиатуры. Чтобы двигаться вперед, я также изучаю алгоритм soundex и fasttext.
У меня есть требование сократить текст так, чтобы получилось длинное предложение, например:
В отличие от двухмерных объектов, трехмерные объекты имеют третье измерение, глубина и поэтому не плоские. Кубики, Сферы и пирамиды — примеры трехмерных объектов.
с помощью следующих шагов:
[*]Возьмите длинное предложение и разбейте его на осмысленные предложения по 3–5. слова. [*]Разбейте выбранные слова на слоги. [*]Удалить слоги (необязательный шаг) (это может быть случайным образом для каждого человека, и каждый человек может выбрать удаление по-разному на другой экземпляр). Я застрял на этом этапе, в алгоритме и изучаю для этого Soundex. [*]Объедините или сократите оставшиеся слоги, чтобы создать единое слово или жаргон.
После описанных выше шагов приведенное выше предложение разбивается на подобные предложения и после удаления слогов сокращается до чего-то похожего, например:
[*]В отличие от двухмерных объектов --> Untdimaljects [*]трехмерные объекты имеют --> трехмерные объекты [*]третье измерение, глубина и суть --> Thirdimdepar [*]поэтому не плоский. Кубы, сферы и пирамиды --> флубесфорфемиды [*]примеры трехмерных объектов. --> plesthreemaljects
Использование моделей машинного обучения. Я пытался найти соответствующие источники данных, но не нашел.
Я также создал последовательную модель Keras, вручную сократив 25 предложений, разбив их на предложения и для каждого предложения самостоятельно создав аббревиатуру, но точность обученной модели удручающе низка ~0,2
Поэтому у меня остается единственный вариант — создать набор данных с помощью алгоритма, в котором я буду использовать 1000 случайных предложений для создания набора данных и, в свою очередь, создам свою модель машинного обучения.
Я использовал библиотеку spaCy и nltk, чтобы разбить предложение на noun_chunks и создать фразы, так что приведенное выше предложение имеет вид:< /п> ['в отличие от двухмерных объектов', 'трехмерные объекты', 'третьи глубина измерения», «поэтому не плоские», «кубы сферы пирамиды примеры», «трехмерные объекты»]
Затем я использую nltk SyllableTokenizer, чтобы разбить приведенные выше фразы на слоги, например
['не нравится двухмерный объект', 'трехмерный объект', 'третий di mens глубина», «там не плоская», «куба сферическая пирамида xampl', 'трехмерный объект']
Сейчас я застрял здесь, чтобы отбросить слоги, используя фиксированный подход, чтобы оставшаяся часть по-прежнему была запоминающейся и читабельной.
Любая помощь в направлении:
[*]мой общий подход к обучению окончательной модели. [*]любые доступные в общедоступной базе данных [*]Любые существующие подобные работы.
Будем признательны.
Примечание Я нашел эту работу, которая делает противоположное, то есть находит исходное предложение из аббревиатуры. Чтобы двигаться вперед, я также изучаю алгоритм soundex и fasttext.
Мобильная версия