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

  • Автор темы Автор темы maryan
  • Дата начала Дата начала

maryan

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

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

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

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

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

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

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

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

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

Можете помочь такое реализовать? Софт не интересует, надо все в зенке делать
 
можно воспользоваться функцией Обработка текста -> Spintax
 
в цикле берете из списка синонимов по 1 строке, и ищете вхождение в тексте.. если нашлось, то заменяете на синоним.. в каждом цикле по 2 проверки - с малой первой буквой и с большой.. список синонимов можно не дополнять вариантами с большими буквами, а преобразовывать их в самом цикле..
 
в цикле берете из списка синонимов по 1 строке, и ищете вхождение в тексте.. если нашлось, то заменяете на синоним.. в каждом цикле по 2 проверки - с малой первой буквой и с большой.. список синонимов можно не дополнять вариантами с большими буквами, а преобразовывать их в самом цикле..
спасибо, я это понимаю, но у меня мозгов нехватит, чтоб взять каждое слово, проверить на наличие в тексте и заменить + оптимизировать, чтоб комп не загнулся... поэтому и прошу помощи
 
спасибо, я это понимаю, но у меня мозгов нехватит, чтоб взять каждое слово, проверить на наличие в тексте и заменить + оптимизировать, чтоб комп не загнулся... поэтому и прошу помощи

вот наваял шабик..
попробуйте..
вроде все пашет..
и с большими и с малыми символами..
 
  • Оценить
Реакции: maryan и MoveMe
чо то файл не загрузился..
еще раз пробую..
 

Вложения

Последнее редактирование:
  • Оценить
Реакции: maryan и MoveMe
чуть изменил шабик (убрал лишние проверки, без них и так работает)
перезалил в посте выше..
 
Последнее редактирование:
  • Оценить
Реакции: maryan
обьеденить список в перменную
найти в перменной строку по слову "магазине" > магазине|шопе
удалить "магазине' сталось слово 'шопе'
заменяем словом 'магазине' на слово 'шопе'
 
Последнее редактирование:
Как сделать что б синонимайзер заменял например все слова "магазин" если их несколько, на "шоп". Интересно было бы реализовать через 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
Последнее редактирование:
  • Оценить
Реакции: Ashka и ZSHab

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