Арекс: экстрактор статей и автоматическое создание аннотаций на Node.js
Версия Node: рекомендуется v6.17.0
HTTP-сервис
Запустите:
node server.js
Клиентское подключение:
curl -X POST -d '{"url":"https://export.shobserver.com/baijiahao/html/411796.html","size":100,"smooth":false}' http://localhost:3824|jq -r .
Установка
npm install arex
Использование
Пример 1: автоматическое извлечение статьи, заголовка, даты публикации и создание аннотации по заданной ссылке:
var arex = require('arex');
//example 1, автоматическое извлечение по ссылке, создание аннотации
arex.get_article('http://finance.sina.com.cn/consume/puguangtai/2016-03-15/doc-ifxqhmve9227502.shtml',120,(err,result)=>{
//120: длина аннотации равна 120, если не нужна аннотация, передайте false.
//result: {"title":"...","content":"....", "summary":"...", "pubdate":"..."}
console.log(result['content']);
});
//пример 2: извлечение из HTML-содержимого, создание аннотации
result = arex.get_article_sync('<html.........</html>',120);//result: {"title":"...","content":"....", "summary":"...", "pubdate":"..."}
//пример 3: создание аннотации из HTML-контента
//summarize(content, exptd_len=120, shingle=false, min=150, max=350, filter=[], title)
//shingle: значение true означает, что в качестве единицы измерения веса используется предложение, равное длине аннотации; значение false означает, что единицей измерения является естественное предложение. filter — это правило фильтрации, и все абзацы, соответствующие правилу, будут отфильтрованы и не включены в аннотацию.
var summary = arex.summarize('<html>.......</html>', 120, true);
var summary = arex.summarize('<html>.......</html>', 0.04, true, 100, 300);//длина аннотации составляет 4%, минимальная длина — 100 символов, максимальная — 300.
Тестирование
Получение исходного кода:
git clone https://github.com/ahkimkoo/arex.git
Тестирование извлечения из определённой веб-страницы:
cd arex
npm install
node test/test.js http://finance.sina.com.cn/consume/puguangtai/2016-03-15/doc-ifxqhmve9227502.shtml 120
120 указывает ожидаемую длину аннотации.
Описание алгоритма
Экстрактор статей: основан на распределении плотности блоков статей, каждый блок состоит из нескольких естественных абзацев. Экстрактор заголовков: отдельно извлекается h1-тег или значение тега title, выбирается наиболее подходящий. Извлечение даты публикации: используется регулярное выражение для извлечения даты рядом с началом статьи (возможны ошибки). Автоматическое создание аннотации: алгоритм Sentence Rank, аналогичный алгоритму PageRank, можно указать ожидаемую длину аннотации. Оптимизация: добавлена модель нейронной сети для определения, подходит ли предложение в качестве аннотации.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )