[自然言語処理] COTOHAにおける方言と出身地の相関関係

記念すべきQiita初投稿。
AIに関して学習し始めて3日目です。面白そうなAPIを見つけたので試してみました。

#目的
NTTコミュニケーションズが開発している自然言語処理技術である[COTOHA API](https://api.ce-cotoha.com/contents/index.html)の[属性推定(β) API](https://api.ce-cotoha.com/contents/reference/apireference.html#user)を利用すると、APIにリクエストした文章から、出身地(location)を推定することができます。

私はCOTOHAが出身地を判断する方法として、リクエストした文章中に方言があれば、方言と出身地を結び付けているのではないかと考えました。そこで、日本列島の地域ごとの方言をAPIにリクエストし、レスポンスとしてどのような出身地が返却されるのかを検証します。

#期待値
検証による期待値は方言が使われている地域がlocationとして返却されること

#方法
まずは日本の地域ごとの方言を独断と偏見でピックアップし、ネットで例文をかき集めました。

###地域ごとの方言
|地域|方言|例文|
|:---|:---|:---|
|北海道|北海道弁|この座布団あづましくないね |
|東北|津軽弁|そこにいるわらし|
|関東|栃木弁|こないだいきあったね |
|中部|名古屋弁|机をつっといて|
|近畿|大阪弁|けったいな格好してはる|
|中国|広島弁|明日、数学のテストじゃ。たいぎい。|
|四国|土佐弁|あの店はラーメン屋に変わったにかあらん|
|九州|博多弁|これはペンですたい|
|沖縄|沖縄弁|なんくるないさ|

###ソースコード
APIを利用するためのソースコードは[こちら](https://qiita.com/gossy5454/items/83072418fb0c5f3e269f)の記事を参考にPythonを利用しています。

#結果
北海道 北海道弁 この座布団あづましくないね

```json

{
    "result": {
        "age": "20-29歳",
        "hobby": [
            "COOKING",
            "INTERNET",
            "MOVIE"
        ],
        "location": "関東",
        "moving": [
            "WALKING"
        ],
        "occupation": "会社員"
    },
    "status": 0,
    "message": "OK"
}
```
東北 津軽弁 そこにいるわらし

```json
{
    "result": {
        "age": "20-29歳",
        "civilstatus": "未婚",
        "earnings": "-1M",
        "hobby": [
            "GOURMET",
            "INTERNET",
            "MOVIE",
            "TRAVEL"
        ],
        "location": "関東",
        "moving": [
            "RAILWAY",
            "WALKING"
        ],
        "occupation": "会社員"
    },
    "status": 0,
    "message": "OK"
}
```

関東 栃木弁 こないだいきあったね

```json
{
    "result": {
        "earnings": "-1M",
        "hobby": [
            "GOURMET",
            "INTERNET",
            "MOVIE",
            "SHOPPING"
        ],
        "location": "関東",
        "occupation": "会社員"
    },
    "status": 0,
    "message": "OK"
}
```
中部 名古屋弁 机をつっといて

```json
{
    "result": {
        "age": "20-29歳",
        "hobby": [
            "COOKING",
            "INTERNET",
            "MOVIE",
            "SHOPPING"
        ],
        "location": "近畿",
        "moving": [
            "RAILWAY"
        ],
        "occupation": "会社員"
    },
    "status": 0,
    "message": "OK"
}
```
近畿 大阪弁 けったいな格好してはる

```json
{
    "result": {
        "age": "40-49歳",
        "earnings": "-1M",
        "hobby": [
            "INTERNET",
            "MOVIE",
            "TRAVEL"
        ],
        "location": "関東",
        "moving": [
            "RAILWAY",
            "WALKING"
        ],
        "occupation": "会社員"
    },
    "status": 0,
    "message": "OK"
}
```
中国 広島弁 明日、数学のテストじゃ。たいぎい。

```json
{
    "result": {
        "age": "20-29歳",
        "civilstatus": "未婚",
        "earnings": "-1M",
        "hobby": [
            "INTERNET",
            "MOVIE"
        ],
        "location": "関東",
        "occupation": "会社員"
    },
    "status": 0,
    "message": "OK"
}

```
四国 土佐弁 あの店はラーメン屋に変わったにかあらん

```json
{
    "result": {
        "civilstatus": "既婚",
        "hobby": [
            "COOKING",
            "GOURMET",
            "INTERNET",
            "MOVIE",
            "MUSIC",
            "SHOPPING",
            "TRAVEL"
        ],
        "location": "関東",
        "occupation": "会社員"
    },
    "status": 0,
    "message": "OK"
}
```
九州 博多弁 これはペンですたい

```json
{
    "result": {
        "age": "40-49歳",
        "gender": "男性",
        "hobby": [
            "CAMERA",
            "COOKING",
            "GOURMET",
            "INTERNET",
            "MOVIE",
            "SHOPPING",
            "TRAVEL"
        ],
        "location": "関東",
        "moving": [
            "RAILWAY"
        ],
        "occupation": "会社員"
    },
    "status": 0,
}
```
沖縄 沖縄弁 なんくるないさ

```json
{
    "result": {
        "age": "40-49歳",
        "location": "関東",
        "occupation": "会社員"
    },
    "status": 0,
    "message": "OK"
}
```
#まとめ
|地域|方言|COTOHA結果(location)|正誤|
|:---|:---|:---|:---|
|北海道|北海道弁|関東|誤|
|東北|津軽弁|関東|誤|
|関東|栃木弁|関東|正|
|中部|名古屋弁|近畿|誤|
|近畿|大阪弁|関東|誤|
|中国|広島弁|関東|誤|
|四国|土佐弁|関東|誤|
|九州|博多弁|関東|誤|
|沖縄|沖縄弁|関東|誤|

名古屋弁を除いてその他のレスポンスはすべて関東という結果でした。
私は、COTOHAが方言によって出身地(location)を推定していると予想していましたが、結果は予想とは異なるものでした。

#追加検証
条件を変更し追加検証を実施しました。

+ 方言を博多弁に絞る
+ 文字数を長くする(10文字 >> 668文字)

#期待値
locationが九州であること

#リクエストした文章
<b>前回の文章</b>
>これはペンですたい。

<b>今回の文章</b>
>これはペンですたい。かよの気持ち教えちゃあ。かよはずっと好いとったとよ。好きになったっちゃけど、どうしたらいいとー！？華丸くんのちかっぱ男らしかとこがすきったい。かよは華丸くんのことで頭がいっぱいっちゃん。かよは華丸くんのことバリすいとうよ。華丸くんと一緒におったら何しとっても楽しかもんね。かよは華丸くんのお嫁さんになりたいっちゃん。華丸くんのことあいしとーと。かよのことお嫁さんにしてくれると？よーっと探してみたばってん、その書類は見つからんやったばい天神さい買いもんに行ってくるね。ご主人さい、その言葉ば言いんしゃい。お前が遅れるけん、連絡されんやったったい。普通、子が親の言うことば聞くとに、あいつんがたじゃ、親が子供の言うことばききようげなぞ。天気予報で明日は雨の降るって言いよったばい。昨日キャンプに来たばっかりやけど 、明日大雨が降るけん今日帰るって先生がいいよったとって。最近は人がこんくなりよるってよ。あのくさ、願い事のあるとばってん、聞いちゃらんや?今日はパソコンの調子の悪かごたーね。きさん、いつまんでん中学生でおらるーとでん思うなよ馬鹿んごと、ピーピー家で笛ば吹きなんな。最近は人のこんごとなってきよる ごたるばい。今日はもう、としちゃんは来んめえやーあのくさ、願い事のあるとばってん、聞いちゃらんや?私のこと、大事に思うとるね？当たり前くさ。ちいとあすこば見やい。食べれ。寝らないかん。知っとーと?とっとーと?花火ば見よーったい。俺、英語ば書ききぃとばい。漢字の分からんとばってん，ちと書いちゃんな 
い。

文章に文脈はありません。博多弁は下記サイトから引用しています。
[かわいい博多弁の告白♥キュンとくる方言のセリフ10選 | 大日本観光新聞](https://bjtp.tokyo/kawaii-hukuokaben-kokuhaku/)
[博多弁 - Wikipedia](https://ja.wikipedia.org/wiki/%E5%8D%9A%E5%A4%9A%E5%BC%81)

#今回の文章をリクエストした結果
```json
{
    "result": {
        "civilstatus": "未婚",
        "earnings": "-1M",
        "gender": "女性",
        "hobby": [
            "COOKING",
            "FISHING",
            "FORTUNE",
            "GAMBLE",
            "MOVIE",
            "SPORT"
        ],
        "location": "近畿",
        "moving": [
            "CAR",
            "NO",
            "WALKING"
        ],
        "position": "係長"
    },
    "status": 0,
    "message": "OK"
}
```

locationが前回の<b>関東</b>から<b>近畿</b>になりました。

#総括
locationは期待していた九州ではないものの、前回の関東から九州に近い近畿という結果になりました。やはり、情報量が多いほうが精度は上がります。今回、追加検証で博多弁で関東ではなく近畿が導出されたことからCOTOHAでは方言と出身地に相関関係がある程度あるという結論にしたいと思います。（検証の仕方など改善の余地はまだありますが...）

また、現段階のCOTOHA APIによるlocationの判断は関東か近畿の2種類に分類されている可能性があると感じました。そのほかのlocationを見たことがある方がいましたらコメント欄でご指摘いただけますと幸いです。

最後に、AIを学習しはじめてまだ3日あまりで、自然言語処理のアルゴリズムや内部処理は一切把握していない私が、簡単にAPIを利用することができました。このAPIを利用することで簡単にAIっぽいアプリケーションを実装できそうです。これは、本当に素晴らしいことだと改めて感じました。開発者の皆様ありがとうございます。