1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/humingzhang-wordfilter

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

1. Замена чувствительных слов

String text = "Политика, которая способствует развитию отрасли";
System.out.println(filter.replace(text));   // Политика, которая способствует развитию отрасли
context.removeWord(Collections.singletonList("Отрасль"), WordType.WHITE);
System.out.println(filter.replace(text));   // Политик**, которая способствует развитию **отрасли**

2. Проверка наличия чувствительных слов

String text = "Политика, которая способствует развитию отрасли";
System.out.println(filter.include(text));   // false
context.removeWord(Collections.singletonList("Отрасль"), WordType.WHITE);
System.out.println(filter.include(text));   // true

3. Подсчёт количества чувствительных слов

String text = "Политика, которая способствует развитию отрасли";
System.out.println(filter.wordCount(text));   // 0
context.removeWord(Collections.singletonList("Отрасль"), WordType.WHITE);
System.out.println(filter.wordCount(text));   // 1

4. Получение списка чувствительных слов

String text = "1 Политика, которая способствует развитию 1 отрасли";
System.out.println(filter.wordList(text));   // []
context.removeWord(Collections.singletonList("Отрасль"), WordType.WHITE);
System.out.println(filter.wordList(text));   // [отрасли]

5. Добавление белого и чёрного списков

  • blacklist.txt
  • whitelist.txt

6. Перегрузка методов

- replace(final String text)                     // distance=0&symbol=*
- replace(final String text, final char symbol)  // distance=0
- include(final String text)                     // distance=0
- wordCount(final String text)                   // distance=0
- wordList(final String text)                    // distance=0

7. Добавление метода для онлайн-добавления чувствительных слов

// В чёрный список добавляется «5000»
context.addWord(Collections.singletonList("5000"), WordType.BLACK);

8. Добавление метода для онлайн-удаления чувствительных слов

// «5000» удаляется из чёрного списка (если в чёрном списке нет этого слова, то оно игнорируется)
context.removeWord(Collections.singletonList("5000"), WordType.BLACK);
// «Чрезвычайное происшествие» удаляется из белого списка (если в белом списке нет этого слова, то оно игнорируется)
context.removeWord(Collections.singletonList("Чрезвычайное происшествие"), WordType.WHITE);

Создание объекта WordContext

WordContext context = new WordContext();

Этот объект используется для инициализации и управления словарём. По умолчанию он читает файлы с именами blacklist.txt и whitelist.txt, которые находятся в пути класса. Также можно передать имена файлов:

WordContext context = new WordContext("/blacklist.txt","/whitelist.txt");

Создание фильтра WordFilter

WordFilter filter = new WordFilter(context);

Передаётся созданный на предыдущем шаге объект WordContext. После создания фильтра можно использовать его методы. Для добавления или удаления слов из словаря можно использовать API объекта WordContext:

// Слово «чрезвычайный» добавляется в чёрный список
context.addWord(Collections.singletonList("чрезвычайный"), WordType.BLACK);
// Слово «чрезвычайный» удаляется из чёрного списка (если его там нет, то ничего не происходит)
context.removeWord(Collections.singletonList("чрезвычайный"), WordType.BLACK);
// Слово «чрезвычайное происшествие» удаляется из белого списка (если его там нет, то ничего не происходит)
context.removeWord(Collections.singletonList("чрезвычайное происшествие"), WordType.WHITE);

Пропуск расстояния

Программа пропускает разные расстояния при поиске чувствительных слов. Чем больше расстояние, тем строже фильтр и ниже эффективность. Разработчик может настроить это в соответствии с требованиями. Здесь слово «чрезвычайный» используется как чувствительное слово для примера.

  • 0 — соответствует слову «чрезвычайный».
  • 1 — соответствует словам «не чрезвычайный», «чрезвычарный».
  • 2 — соответствует словам «чрезвычайный», «чрезвычарный», «чрезвычаарный».

Крупное обновление

Решена проблема, аналогичная проблеме с коммутатором 24 порта. Разделены белый и чёрный списки.

Чёрный список («чрезвычайный»). Белый список («чрезвычайное происшествие»).

Мы решили отправить 5000 человек в жилые районы, чтобы помочь пострадавшим от бедствия, и объявить чрезвычайную ситуацию. И мы решили не объявлять чрезвычайную ситуацию для «чрезвычайного происшествия». ``` String text = "利于上游1行业发展的政策逐渐发布"; System.out.println(filter.wordList(text)); //[]] context.removeWord(Collections.singletonList("上游行业"), WordType.WHITE); System.out.println(filter.wordList(text)); //[游行] }


Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Инструмент для фильтрации чувствительных слов, основанный на реализации алгоритма DFA, который поддерживает управление помехами от чувствительных слов с помощью параметра Skip. Поддерживает пропуск слов из белого списка, позволяет добавлять и удалять чувствительные слова онлайн, а также управлять словарём чувствительных слов. Развернуть Свернуть
Apache-2.0
Отмена

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/humingzhang-wordfilter.git
git@api.gitlife.ru:oschina-mirror/humingzhang-wordfilter.git
oschina-mirror
humingzhang-wordfilter
humingzhang-wordfilter
master