Распознавание речи и текста: исправление текста и импровизация результатов в Python - PullRequest
0 голосов
/ 13 февраля 2020

Как я могу достичь результата ниже в Python

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

Текст гипотезы: " Мы хотели, чтобы люди знали, что, как я знаю, и, по сути, этот продукт - это то, что мы называем скриптом изменяет способ, которым люди используют быстрые технологии. "

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

Мой окончательный текст должен выглядеть так:

"Мы хотели, чтобы люди знали, что how to me where I know у нас есть что-то совершенно новое и по сути, этот продукт э что мы называем scripted разрушительным меняет то, как люди are rapid взаимодействуют технология. "

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

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

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

Спасибо:)

1 Ответ

0 голосов
/ 17 февраля 2020

Вам нужно использовать расстояние Левенштейна для сравнения, увидеть что-то вроде:

Сходство Левенштейна в Python

import numpy as np

def levenshtein(seq1, seq2):
    size_x = len(seq1) + 1
    size_y = len(seq2) + 1
    matrix = np.zeros ((size_x, size_y))
    for x in xrange(size_x):
        matrix [x, 0] = x
    for y in xrange(size_y):
        matrix [0, y] = y

    for x in xrange(1, size_x):
        for y in xrange(1, size_y):
            if seq1[x-1] == seq2[y-1]:
                matrix [x,y] = min(
                    matrix[x-1, y] + 1,
                    matrix[x-1, y-1],
                    matrix[x, y-1] + 1
                )
            else:
                matrix [x,y] = min(
                    matrix[x-1,y] + 1,
                    matrix[x-1,y-1] + 1,
                    matrix[x,y-1] + 1
                )
    print (matrix)
    return (matrix[size_x - 1, size_y - 1])
...