Зростання IDF (зворотна частота документа)


11

У програмі видобутку тексту одним простим підходом є використання евристичного для створення векторів як компактних розріджених зображень документів. Це добре для серійної установки, де весь корпус відомий априорі, оскільки i d f вимагає весь корпустf-iгfiгf

iгf(т)=журнал|D||{г:тг}|

де - термін, d - документ, D - корпус документа, а T (не показано) - словник.тгDТ

Однак зазвичай нові документи надходять з часом. Один із варіантів - продовжувати користуватися існуючим до отримання певної кількості нових документів та перерахувати його. Однак це здається досить неефективним. Хтось знає про схему додаткового оновлення, яка (можливо, приблизно) збігається до значення, якщо всі дані бачились заздалегідь? Або альтернативно, чи є інший захід, який фіксує те саме поняття, але може бути обчислений поступово?iгf

Існує також пов'язане питання про те, чи залишається хорошим показником у часі. Оскільки idf фіксує поняття частоти корпусного слова, можливо, старіші документи в корпусі (скажімо, наприклад, що мій корпус включає понад 100 років журнальних статей), оскільки частота різних слів змінюється з часом. У цьому випадку насправді може бути розумним викидати старі документи, коли надходять нові, фактично використовуючи розсувне вікно i d f . Можливо, можна також зберігати всі попередні вектори i d f, коли обчислюються нові, і тоді, якби ми хотіли отримати документи з скажімо 1920-1930 років, ми могли б використати i d fiгfiгfiгfiгfобчислюється з документів у цьому діапазоні дат. Чи має сенс цей підхід?

Edit: Існує окремий , але пов'язаний з цим питання про словнику . З часом розвиватимуться нові терміни в словнику, які раніше не з'являлися, тому | Т | потрібно буде рости, а значить, і довжина вектора i d f . Схоже , що це не буде проблемою, так як нулі можуть бути додані до старих я д F векторів.Т|Т|iгfiгf


дурне запитання: Проблема зберігання знаменника для кожного t? Як співвідношення | t | до | d | схоже (загалом)?
steffen

Вибачте, можливо, рівняння не зрозуміло - - обернена частота документа терміна t, а не час t . Отже, в момент t ви мали би вектор довжини | Т | , тобто розмір словника (який також може змінюватися). Я вноситиму зміни в цьому сенсі. iгf(т)тт|Т|
tdc

1
Я зрозумів рівняння. Моє запитання було: Якщо зберігати словник не є проблемою, то: Замість зберігання | T | idfs один магазин | T | знаменники (рівняння) + кількість документів. Інкрементальне оновлення - це не проблема, і IDF обчислюється на ходу. У мене є відчуття, ніби я щось пропустив.
steffen

Отже, ви маєте на увазі щось на зразок нового документа , якщо у нас є значення d : t d , ми просто додамо його до знаменника для t : t d гг:тгт:тг
tdc

точно. Якщо це можливо?
steffen

Відповіді:


6

Добре, дякую Стеффен за корисні коментарі. Я здогадуюсь, зрештою, відповідь досить проста. За його словами, все, що нам потрібно зробити, - це зберігати поточний знаменник (називати це ):z

z(т)=|{г:тг}|

Тепер, отримавши новий документ , оновимо знаменник просто:г

z(т)=z(т)+{1якщотг0інакше

Тоді нам доведеться перерахувати на основі нового i d f вектора.тf-iгfiгf

Аналогічно, щоб видалити старий документ, ми декрементуємо чисельник аналогічно.

Це робить означає , що ми повинні або зберігати весь матриці, а також т ф -тf матриці (подвоєння вимоги до пам'яті), або ми повинні обчислити т п - я d е оцінки при необхідності (збільшення обчислювальним витрати). Я не бачу цього способу.тf-iгfтf-iгf

У другій частині питання, про еволюцію векторів з часом, видається, що ми можемо скористатись вищевказаним методом та зберегти набір "орієнтирів" z векторів (знаменників) для різних діапазонів дат (або, можливо, змісту) підмножини). Звичайно, z - щільний вектор довжини словника, тому зберігання багатьох із них буде інтенсивним для пам'яті; однак це, ймовірно, є кращим для перерахунку векторів i d f, коли це потрібно (що знову вимагає також збереження матриці t f або замість цього).iгfzziгfтf

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.