Щодо використання біграмової (N-грамової) моделі для побудови функціонального вектора для текстового документа


10

Традиційним підходом побудови функцій для видобутку тексту є підхід із пакету слів, який можна вдосконалити, використовуючи tf-idf для налаштування вектора ознак, що характеризує даний текстовий документ. В даний час я намагаюся використовувати біграмову мовну модель або (N-грам) для побудови функціонального вектора, але не знаю, як це зробити? Чи можемо ми просто дотримуватися підходу мішкових слів, тобто обчислювати частоту підрахунків у біграмі замість слів та посилювати її за допомогою схеми зважування tf-idf?

Відповіді:


4

Так. Це дозволить створити ще багато функцій: можливо, важливо застосувати деяке відсічення (наприклад, відкиньте такі біграми чи слова, які зустрічаються менше ніж у 5 разів у вашому наборі даних), щоб не заглушити ваш класифікатор занадто багато галасливих особливості.


Дякую. Ви маєте на увазі, що моє загальне уявлення про обчислення кожного значення функції у біграмі (N-грам) є правильним? Іншими словами, немає великої різниці в обчисленні значень ознак між сумкою слів і N-грамовою моделлю. Дякуємо за роз’яснення.
user3125

Так, ви можете використовувати обидві біграми + уніграми (слова) у великому пакеті функцій (до тих пір, поки ви обріжете найменш часто з деяким рівнем відсікання).
ogrisel

3

Кількість біграм можна зменшити, вибравши лише ті, що мають позитивну взаємну інформацію.

Ми зробили це для створення пакету подання біграм на майнінг-доріжці INEX XML, http://www.inex.otago.ac.nz/tracks/wiki-mine/wiki-mine.asp .

Те, що ми не пробували, - це використання взаємної інформації між термінами для зважування бі-грамів. Дивіться https://en.wikipedia.org/wiki/Pointwise_mutual_information , https://www.eecis.udel.edu/~trnka/CISC889-11S/lectures/philip-pmi.pdf та http: //www.nltk. org / howto / collocations.html для кращого пояснення точкової взаємної інформації для біграм.

Дивіться /programming/20018730/computing-pointwise-mutual-information-of-a-text-document-using-python та /programming/22118350/python-sentiment-analysis -використання точково-взаємної інформації для інших питань, пов’язаних із цим.


мертве посилання :-( ...
Рено

1
@Renaud Посилання були оновлені :-)
Кріс де Вріс

0

Використання випадкових проекцій для зменшення розмірності даних може виявитися корисним для зменшення місця, необхідного для зберігання функцій, https://en.wikipedia.org/wiki/Random_projection . Він дуже масштабується, і кожен приклад може бути спроектований на нижній розмірний простір незалежно та без будь-яких методів прямої оптимізації, таких як PCA, SVD, Sammon Maps, NMF тощо.

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