ch laksmi Ответов: 1

Как я могу получить измененные слова, вставленные слова и пропущенные слова между двумя строками в ASP.NET


В моем веб-приложении у меня есть две строки, и мне нужно отобразить пропущенные слова, которые считаются, вставляя слова, которые считаются, и измененные слова, которые считаются между ними.
Например:

string variable1= " когда вы пишете серверный код, вы никогда не можете быть уверены, на какой IP-адрес вы видите реферирование.На самом деле некоторым пользователям это нравится.";
строки variable2="когда написать любое сервера код Ю не cannn быть уверены Демонстрация какой у вас адрес.На самом деле Demo1 некоторым пользователям это нравится";

Результат должен быть:

Пропущенные слова: see, IP, you
Количество пропущенных слов: 3

Вставлено: Демо, Демо1
Количество вставленных слов: 2

Измененные слова: wrting, yu, cannn ,refering
Количество измененных слов :4

Я попробовал это сделать, но он не отображается должным образом

string variable1="When you are writing server code you can never be sure what the IP address you see is refereeing to.In fact some users like it this way.";
     string variable2="are wrting server code yu cannn never be sure **Demo** what the IP address you see is to.In fact **Demo1** some users like it this way";

 //Missing Word Count    
            var result = variable1.Split(new char[] { ' ' }).Except(variable2.Split(new char[] { ' ' })).ToArray();
            count = result.Length;
         Label2.Text += "Missing Word Count: " + count.ToString() + "<br /><br />";
            for (int i = 0; i &lt; count; i++)
            {
              Label1.Text += "Missing Word: " + result[i].ToString() + "<br /><br />";
            }


            //Insert Word
            var result1 = variable2.Split(new char[] { ' ' }).Except(variable1.Split(new char[] { ' ' })).ToArray();
            count = 0;
            count = result1.Length;
            for (int i = 0; i &lt; count; i++)
            {
                Label3.Text += "Insert Word: " + result1[i].ToString() + "<br /><br />";

            }
            Label4.Text += "Insert Word Count: " + count.ToString() + "<br /><br />";    

    //Modifide Words
       string[] tempArr1 = variable1.Split(' ');  
        string[] tempArr2 = variable2.Split(' ');  
        int counter = 0;  

        for (int i = 0; i &lt; tempArr1.Length; i++)  
        {  
            if (tempArr1[i] != tempArr2[i])  
            {  
               lblwords.text=tempArr1[i] + ", "+ tempArr2[i];  
                counter++;  
            }  
        }


Что я уже пробовал:

кто-нибудь может мне помочь
Спасибо

OriginalGriff

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

Karthik_Mahalingam

:)

F-ES Sitecore

Слово "когда" отсутствует, так почему бы ему не быть частью вывода отсутствующих слов? Что диктует, если слово "считается" или нет? Откуда он знает, что" cannn "- это модифицированная версия"can"? Что такого в этих двух словах, что код знает, чтобы связать их?

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

1 Ответов

Рейтинг:
2

Patrice T

Цитата:
Как я могу получить измененные слова, вставленные слова и пропущенные слова между двумя строками в ASP.NET
Это не тривиальная проблема. Разработка эффективного алгоритма требует некоторой работы.
Вот некоторые документы.
Самая длинная общая проблема подпоследовательности - Википедия, свободная энциклопедия[^]
Diff-Text-Википедия, свободная энциклопедия[^]

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