テキストの読み上げ機能,音声操作機能を実装しています. テキスト読み上げと音声認識には Web Speech API を使用しています.
ニュース記事の要約を提示します.
要約アルゴリズムはグラフベースの抽出型要約手法であるLexRankを使用しています. LexRankはNodeに文,Edge/Weightに文間類似度を使用した手法です. 本アプリでは,文間類似度の計算にBERTの特徴量を利用しています. BERTモデルは東北大学 乾・鈴木研究室が公開している学習済みモデルを使用しています.
文章中のトレンドワードを拡大表示します.
単語トレンドの可視化の際には以下の処理を行っています.
まず,教師なしキーフレーズ抽出手法のPositionRankを使用して記事中からキーフレーズを抽出します. 次に,各キーフレーズの Google Trend Score の時系列データを取得します. なお,生の Google Trend Score では日常的に検索される単語(e.g. 天気)のスコアが高くなりやすいという問題があるため,取得した Google Trend Score の時系列データに対して移動平均収束拡散法を適用し,スコアの変動量を求めます.これが最終的なトレンドスコアとなります. このトレンドスコアが高いフレーズのフォントサイズを大きくすることで,トレンドの可視化を行っています.
トレンドを考慮した記事レコメンドを行います.
レコメンドの際には以下の処理を行っています.
まず,記事中からキーフレーズを抽出した後,GiNZAおよびchiVe(v1.1 mc5)を使用してキーフレーズをベクトル化します. 次に,各キーフレーズベクトルに対して,それぞれのキーフレーズのトレンドスコアを重みとして与えます. これらの重み付けされたキーフレーズベクトルの平均が記事ベクトルとなります. 最後に,データベースに保存されている記事ベクトルとの間でcosine類似度を計算し,類似している記事上位5件を提示します.
調べたい単語に関するWikipedia記事の概要を提示します.
Wikipedia記事の検索にはWikipedia2Vecを使用し,入力された単語と最も類似している記事タイトルを取得しています. これにより,Wikipedia記事のタイトルと完全に一致しない単語であっても,調べたい単語に該当する,あるいは類似する記事をサジェストすることが可能となっています.
Docker,Docker-composeを使用.
# build and run app
docker-compose build
docker-compose up
http://<YOUR LOCALHOST>:8080/
へアクセス.
Tables
- Article
- Named entity
- Trend
- Wiki
記事の本文などのデータを格納する.
Field | Type | Null | Key | Default | Extra |
---|---|---|---|---|---|
id | int(11) | NO | PRI | NULL | auto_increment |
url | varchar(256) | NO | NULL | ||
title | varchar(256) | NO | NULL | ||
content | longtext | NO | NULL | ||
vector | longtext | YES | NULL |
記事中のキーワードを格納する.
Field | Type | Null | Key | Default | Extra |
---|---|---|---|---|---|
id | int(11) | NO | PRI | NULL | auto_increment |
url | varchar(256) | NO | NULL | ||
word | longtext | NO | NULL | ||
vector | longtext | YES | NULL |
キーワードのTrend scoreを格納する.
Field | Type | Null | Key | Default | Extra |
---|---|---|---|---|---|
id | int(11) | NO | PRI | NULL | auto_increment |
word | varchar(256) | NO | NULL | ||
score | int(11) | NO | NULL |
Wikipediaの概要部分を格納する.データはCirrusSearchダンプデータを使用.
Field | Type | Null | Key | Default | Extra |
---|---|---|---|---|---|
id | int(11) | NO | PRI | NULL | auto_increment |
title | varchar(256) | NO | NULL | ||
abst | longtext | NO | NULL |