Я намагаюся виявити, чи є стаття чи публікація на форумі дублікатом запису в базі даних. Я задумався над цим, прийшовши до висновку, що той, хто копіює вміст, зробить це за допомогою одного з трьох (у низхідній ситуації важко виявити):
- проста копія, вставити весь текст
- скопіюйте та вставте частини тексту, об’єднавши їх із своїми
- скопіюйте статтю із зовнішнього веб-сайту та маскуйте її як власну
Підготовка тексту до аналізу
В основному будь-які аномалії; мета - зробити текст максимально «чистим». Для більш точних результатів текст "стандартизується" за:
- Стрижка дублікатів білих пробілів та обрізка ведучих та кінцевих.
- Нові рядки стандартизовані до \ n.
- Теги HTML видалено.
- Використовуючи RegEx під назвою URL-адреси Daring Fireball, знімаються.
- Я використовую код BB у своїй програмі, так що це стосується.
- (ä) центровані та іноземні (крім Enlgish) перетворюються на їхню не іноземну форму.
Я зберігаю інформацію про кожну статтю в таблиці (1) статистики та в (2) таблиці ключових слів.
(1) Таблиця статистики Про текстовий вміст зберігається наступна статистика (як і ця публікація)
- довжина тексту
- кількість літер
- підрахунок слів
- кількість пропозицій
- середні слова на речення
- автоматизований індекс читабельності
- оцінка туману
Для європейських мов слід використовувати Coleman-Liau та Автоматизований індекс читабельності, оскільки вони не використовують підрахунок складів, тому вони повинні давати досить точну оцінку.
(2) Таблиця ключових слів
Ключові слова генеруються за рахунок виключення величезного списку стоп-слів (загальних слів), наприклад, 'the', 'a', 'of', 'to' тощо, тощо.
Зразок даних
- text_length, 3963
- лист_кант, 3052
- word_count, 684
- вирок_счет, 33
- word_per_sentence, 21
- 11.5
- auto_read_index, 9.9
- ключове слово 1, убитий
- ключове слово 2, офіцери
- ключове слово 3, поліція
Слід зазначити, що після оновлення статті всі перераховані вище статистичні дані відновлюються і можуть мати зовсім інші значення.
Як я міг би використовувати вищевказану інформацію для виявлення, якщо стаття, яка публікується вперше, вже існує в базі даних?
Я знаю, що все, що я буду розробляти, не буде ідеальним, найбільший ризик - це (1) Вміст, який не є дублікатом, буде позначено як дублікат (2) Система дозволяє пропускати дублікат вмісту.
Таким чином, алгоритм повинен генерувати номер оцінки ризику від 0, не дублюючи ризик, 5 можливий дублікат і 10 - дублікат. Що-небудь вище 5, то є хороша можливість, що вміст дублюється. У цьому випадку вміст може бути позначений і пов’язаний із статтями, які є можливими копіями, і людина може вирішити, видалити чи дозволити.
Як я вже говорив перед тим, як зберігати ключові слова для всієї статті, проте мені цікаво, чи можна було б зробити те саме на абзаці; це також означатиме подальше відокремлення моїх даних у БД, але це також спростить виявлення (2) у моїй початковій посаді.
Я думаю, середнє зважене значення між статистикою, але в якому порядку і якими будуть наслідки ...