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

OSCHINA-MIRROR/dreamidea-arex

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

Арекс: экстрактор статей и автоматическое создание аннотаций на 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 )

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

Введение

Нодджс артикль экстрактор. Развернуть Свернуть
BSD-2-Clause
Отмена

Обновления

Пока нет обновлений

Участники

все

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

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