Обработка текста. Как реализовать синонимайзер?

maryan

Client
Регистрация
04.07.2014
Сообщения
230
Благодарностей
40
Баллы
28
Всем привет!

1) нужно выполнить вставку ссылок в текст
например есть текст 50-1000 символов:

В нашем интернет-магазине вы можете купить новый телефон samsung, также новый нокиа. Но для этого вам необходимо зарегистрироваться.

Надо регуляркой вставить ссылку в рандомном месте(с рандомом справлюсь).
Например сделать ссылку из 3х слов, выберем место - после первого пробела
Результат

В <a href="#">нашем интернет-магазине</a> вы можете купить новый телефон samsung, также новый нокиа. Но для этого вам необходимо зарегистрироваться.
+ сделать проверку названия ссылки... Если присутствуют левые символы . , - то ошибка

2) Сделать синонимайзер
Есть текст

В нашем интернет-магазине вы можете купить новый телефон samsung, также новый нокиа. Но для этого вам необходимо зарегистрироваться.

есть список синонимов в txt
нашем|моем
магазине|шопе
купить|приобрести
телефон|мобильник

надо выполнить замену "магазине" на "шопе". Или "шопе" на "магазине"
также надо учесть, что "Магазине" нужно заменить на "Шопе"

Можете помочь такое реализовать? Софт не интересует, надо все в зенке делать
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 116
Баллы
113
можно воспользоваться функцией Обработка текста -> Spintax
 

maryan

Client
Регистрация
04.07.2014
Сообщения
230
Благодарностей
40
Баллы
28

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 116
Баллы
113
в цикле берете из списка синонимов по 1 строке, и ищете вхождение в тексте.. если нашлось, то заменяете на синоним.. в каждом цикле по 2 проверки - с малой первой буквой и с большой.. список синонимов можно не дополнять вариантами с большими буквами, а преобразовывать их в самом цикле..
 

maryan

Client
Регистрация
04.07.2014
Сообщения
230
Благодарностей
40
Баллы
28
в цикле берете из списка синонимов по 1 строке, и ищете вхождение в тексте.. если нашлось, то заменяете на синоним.. в каждом цикле по 2 проверки - с малой первой буквой и с большой.. список синонимов можно не дополнять вариантами с большими буквами, а преобразовывать их в самом цикле..
спасибо, я это понимаю, но у меня мозгов нехватит, чтоб взять каждое слово, проверить на наличие в тексте и заменить + оптимизировать, чтоб комп не загнулся... поэтому и прошу помощи
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 116
Баллы
113
спасибо, я это понимаю, но у меня мозгов нехватит, чтоб взять каждое слово, проверить на наличие в тексте и заменить + оптимизировать, чтоб комп не загнулся... поэтому и прошу помощи
вот наваял шабик..
попробуйте..
вроде все пашет..
и с большими и с малыми символами..
 
  • Спасибо
Реакции: maryan и MoveMe

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 116
Баллы
113
чо то файл не загрузился..
еще раз пробую..
 

Вложения

Последнее редактирование:
  • Спасибо
Реакции: maryan и MoveMe

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 116
Баллы
113
чуть изменил шабик (убрал лишние проверки, без них и так работает)
перезалил в посте выше..
 
Последнее редактирование:
  • Спасибо
Реакции: maryan

alekwuy

Client
Регистрация
06.04.2013
Сообщения
1 631
Благодарностей
461
Баллы
83
обьеденить список в перменную
найти в перменной строку по слову "магазине" > магазине|шопе
удалить "магазине' сталось слово 'шопе'
заменяем словом 'магазине' на слово 'шопе'
 

AloneSlamer

Client
Регистрация
29.01.2013
Сообщения
1 404
Благодарностей
362
Баллы
83

Обращаем Ваше внимание на то, что данный пользователь заблокирован.
Не рекомендуем проводить с AloneSlamer какие-либо сделки.

самое оптимальное с снипет
 

ezotonal

Client
Регистрация
13.01.2014
Сообщения
819
Благодарностей
231
Баллы
43
Перезалейте шабик будьте добры! Заранее благодарствую!
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 116
Баллы
113
Последнее редактирование:

ezotonal

Client
Регистрация
13.01.2014
Сообщения
819
Благодарностей
231
Баллы
43

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 116
Баллы
113

ezotonal

Client
Регистрация
13.01.2014
Сообщения
819
Благодарностей
231
Баллы
43
Как сделать что б синонимайзер заменял например все слова "магазин" если их несколько, на "шоп". Интересно было бы реализовать через C#!

Что то типо такого:

string Text = project.Variables["text"].Value;
string regexText = System.Text.RegularExpressions.Regex.Replace(Text, "а", "б");
string regexText = System.Text.RegularExpressions.Regex.Replace(Text, "г", "д");
string regexText = System.Text.RegularExpressions.Regex.Replace(Text, "магазин", "шоп");
return regexText;

Заранее благодарен!
 
Последнее редактирование:
  • Спасибо
Реакции: Vik89

ezotonal

Client
Регистрация
13.01.2014
Сообщения
819
Благодарностей
231
Баллы
43
Ну или проще находить латиницу [a-zA-Z] и заменять на кириллицу [а-яА-Я]
 

ZSHab

Client
Регистрация
29.10.2014
Сообщения
220
Благодарностей
22
Баллы
18

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 116
Баллы
113
Последнее редактирование:
  • Спасибо
Реакции: Ashka и ZSHab

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)