※アルファ版につきドキュメントが追い付いていない可能性有。
クイックガイド
動作環境
Windows10/11 (64bit) のデスクトップPC又はノートPCで動作します。 同じOSでもタブレットやモバイル端末では動作しません。
インストール
- 任意のフォルダに解凍したファイル一式を保存するだけでOK
アンインストール
- アプリケーションを保存したフォルダを削除するだけでOK
- アプリケーションからレジストリへの書き込みはありません。
- とても寂しいですけどね!
起動
nana.exe を実行してください。 Microsoftストア経由のアプリではないため実行時に危険なアプリ的な警告が出る可能性があります。 危険性は無いと自負していますが実行は自己責任にてお願いします。
外観および操作
【上】 v0.2.x のイメージ。
【下】 v0.3.x キャラクターを小さめに変更。
- キャラクターを右クリックするとメニューが表示されます。(詳細はメインメニューの項を参照)
- コンソールは任意の文字列を入力できます。(詳細はコンソールの項を参照)
- キーボードフォーカスが外れるとコンソールは非表示になります。
- キャラクターが隠れている時は Ctrl + Shiftキーを二連打する事で呼び出せます。
終了
アプリケーションを終了する方法は次のいずれかです。
- コンソールに /q を入力して Enter
- キャラクターを右クリック→「終了」
- キャラクターウィンドウで Alt + F4 を押下
メインメニュー
メインメニューを抜粋して解説します。
- その他の設定 - 右クリック拡張機能を有効化
- 詳細は機能の項を参照。
- その他の設定 - 右Ctrlを拡張機能に割り当て
- 右Ctrlキーを Ctrl+右クリック と同様に扱います。
- その他の設定 - クリップボードの内容を会話のヒントにする
- テキストをコピーした際に自然言語学習に利用します。 内容は蓄積されるため機密情報を扱う場合はご注意ください。
コンソール
自然言語

- 何となく意味がありそうで無い会話を繰り広げます。
- 複数キャラクターが言葉のかけあいを繰り返す事で思わぬ「迷言」が生まれるかもしれません。
- (v0.2.0) 現在は2キャラクター固定
コマンド

- 書式: command [-option] param1 param2 ...
- [] は省略可能なオプションを示します。
- 例1: date コマンドは現在の日付を表示します。
- 例2: afk コマンドはモニターの電源をOFFにします。-s オプションでOFFの代わりにスクリーンセーバーを起動します。
- もっとコマンドを活用したい方はコマンド一覧を参照されたし。
本気モード
Alt+Enter を押すことでキャラクターから分離し表示範囲を大きくします。
機能
CUIツール
Windowsのコマンドプロンプトを模したCUIツールを実装しています。 コンソールにコマンド文字列を入力することで実行します。
カレントディレクトリの概念はありません。
右クリック拡張機能
Ctrl 又は Shift を押しながら画面上の任意の位置で右クリックする事で下記ユーティリティを利用できます。
- Ctrl + 右クリック
- クリップボード ユーティリティを起動します。 /data/clipboard 以下に保存したテキストファイルをクリップボードに読み込みます。 クリップボードの履歴(テキストのみ)も再利用する事ができます。
- Shift + 右クリック
- ショートカット ユーティリティを起動します。 /data/shortcut 以下に保存したショートカットを起動します。
自然言語処理
各種モデルフォルダ
※<ID> は各キャラクターごとに読み換え。
- システム辞書
- /iroharc/MeCab/dic/unidic
- 形態素解析 MeCab で使用する辞書です。 通常編集することはありません。
- 語彙
- /unit_rom/<ID>/brain/models/corpus
- 書式:フリーフォーマットのテキストファイル(.txt)
- キャラクターがその言葉を知っているかどうかを決めるモデルです。 語彙データに含まれない単語が入力された場合、未知の単語として扱います。 下記のマルコフ連鎖で使用するモデルも語彙に含めます。
- マルコフ連鎖
- /unit_rom/<ID>/brain/models/markov
- 書式:なるべく口語体で記述されたテキストファイル(.txt)
- マルコフ連鎖はスマートフォンの予測変換のように特定の単語から次に現れる可能性の高いワードをつなげて文章を生成する機能です。
- ナレッジ
- /unit_rom/<ID>/brain/models/knowledge
- 書式:口語体で記述されたテキストファイル(.txt)一行に1センテンス。
- 豆知識などを記載しておくと、一致する会話ヒントが発生した際に発言します。
- イベント定型文
- /unit_rom/<ID>/brain/scripts/event.json
- イベントに対する定型文を記述します。
- レスポンス定型文
- /unit_rom/<ID>/brain/scripts/template.json
- 名詞および形容詞に対する応答を記述します。
- RSS URL
- /unit_rom/<ID>/brain/feeder-urls.txt
- RSSのURLを1行ごとに記述します。受信した記事を発言に利用します。
- 学習データ
- /unit_experience/<ID>/
- 削除することで学習データをリセット出来ます。
既知の不具合
- 自発的にお喋りしない
- RSSを読みつくすと黙る可能性が高いです。
- 読み込みに時間がかかる
- マルコフモデルの実装がお粗末なためモデルが多くなるほど強烈に応答が遅くなります。
設定
システム設定値
nana.config にシステム設定値を記述しています。 中身はini形式のテキストファイルです。 詳細はファイル内に記載のコメント参照。
v0.3.x より主要な設定項目を右クリックメニューへ移行しました。
アプリケーション設定値
nana.state にウィンドウ座標、オプションなどの設定値を記録しています。 削除することで状態を初期化します。
その他
使用言語
C++
開発環境
Sublime Text
Microsoft(R) C/C++ Optimizing Compiler Version 19.20.27508.1 for x64
Microsoft (R) Incremental Linker Version 14.20.27508.1
ライセンス
順不同、敬称略。心より御礼申し上げます。
- json11
-
Copyright (c) 2013 Dropbox, Inc.
MIT License
https://github.com/dropbox/json11 - MeCab
-
Copyright (c) 2001-2008, Taku Kudo
Copyright (c) 2004-2008, Nippon Telegraph and Telephone Corporation
All rights reserved.
BSD License
https://taku910.github.io/mecab/ - SNOW D18:日本語感情表現辞書
- https://www.jnlp.org/GengoHouse/snow/d18
- UniDic
-
National Institute for Japanese Language and Linguistics
(Toshinobu OGISO)
BSD License
https://clrd.ninjal.ac.jp/unidic/ - VividOrangeMix (Stable Diffusion)
-
VividOrangeMix
https://huggingface.co/WarriorMama777/OrangeMixs
CreativeML Open RAIL-M - kuronekoAnimemixV10 (Stable Diffusion)
-
https://civitai.com/models/70199/kuronekoanimemixv10
CreativeML Open RAIL-M - あずきフォント
- http://azukifont.com/
- イラスト
- https://illustrain.com/