Как проверить текст на стоп слова

finista

Client
Регистрация
10.10.2012
Сообщения
236
Благодарностей
26
Баллы
28
Есть словарик со стоп словами и мноооого строк - каждую нужно проверить на вхождение стоп-слова

Вариант 1. взять txt файл со списком стоп-слов и проверить строку перебирая каждое стоп-слово

Вариант 2. взять mysql со списком стоп-слов и проверить строку перебирая каждое стоп-слово - не совсем понимаю как построить процесс, надо сразу скачать все слова в список и удалая по очереди стоп-слова так и проверить строку

Если кто сталкивался как правильно организовать такой функционал?
Вариант 1 не подходит, не удобно файлом.
Вариант 2 не знаю (пока) как передать из sql запроса сразу списком в список в шаблоне

Спасибо
 
Последнее редактирование:

AZANIR

Client
Регистрация
09.06.2014
Сообщения
402
Благодарностей
183
Баллы
43
стоп слова в массив а далее делаете проверку на содержание слова в строке.
 
  • Спасибо
Реакции: finista

doc

Client
Регистрация
30.03.2012
Сообщения
7 920
Благодарностей
3 999
Баллы
113
база данных это тоже файл. Зачем такая морока, если всё равно придётся всю базу выкачивать?
 
  • Спасибо
Реакции: finista

backoff

Client
Регистрация
20.04.2015
Сообщения
4 110
Благодарностей
2 872
Баллы
113
ну тут смотря сколько это много под словом "мнооого"
я делал просто
  • брал txt файл в него загонял ключи построчно
  • привязывал список к файлу
  • операции со списками и делал такое
  • 70679
ну и все, из файла удалялись все ключи, которые содержат данный текст

(стопслово|стопслово|стопслово|стопслово)


ну или если прям реально много (речь о гигабайтах)
то можно либо уже в ручную через EmEditor руками просто быстрее будет чем шаб писать, но тут знания регулярок надо
либо написать шаб, который будет проверять каждую строчку на стоп слово

в чем собсно проблема?
 
  • Спасибо
Реакции: finista

Alexmd

Client
Регистрация
10.12.2018
Сообщения
490
Благодарностей
414
Баллы
63
Попробуйте такой код
C#:
string text = project.Variables["text"].Value;
var stopList = project.Lists["stopList"];
project.Variables["text"].Value = string.Join(Environment.NewLine, text.Split(new[]{Environment.NewLine}, StringSplitOptions.None).ToList().Where(x=>!stopList.Any(x.Contains)));
он соберет в исходную переменную текст без строк содержащих хоть одно слово из стоп-списка.
 
  • Спасибо
Реакции: finista

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