Slide 1

Slide 1 text

0 新入社員目線から学ぶエンジニアに必要なこと その2:新しいサービスを作る (必要性の理解:形態素解析+文章のベクトル化) 2023-08-04 第55回NearMe技術勉強会 Asahi Kaito

Slide 2

Slide 2 text

1 まずは前回のJamの確認から

Slide 3

Slide 3 text

2 弊社でのJam(1)

Slide 4

Slide 4 text

3 弊社でのJam(2)

Slide 5

Slide 5 text

4 弊社でのJam(2) これに着目してみたい

Slide 6

Slide 6 text

5 どんなタスクか? 想定)元々大きなアプリがあり、そのFeatureタスク ● 親 → フードデリバリーアプリ(ここは前提とする) ● 子 → まかない提供機能 *考慮する事項として考えられるもの 1. そもそも、その機能の必要性は? 2. UIのどの部分に取り入れるか? 3. 料金体系はどうするのか? …などなど

Slide 7

Slide 7 text

6 どんなタスクか? 想定)元々大きなアプリがあり、そのFeatureタスク ● 親 → フードデリバリーアプリ(ここは前提とする) ● 子 → まかない提供機能 *考慮する事項として考えられるもの 1. そもそも、その機能の必要性は? 2. UIのどの部分に取り入れるか? 3. 料金体系はどうするのか? …などなど ここを扱います

Slide 8

Slide 8 text

7 どんなタスクか? *考慮する事項として考えられるもの 1. そもそも、その機能の必要性は? ● どのように必要性を取得するか ○ ユーザーからのFB → フォームなどから ○ SNSでのエゴサーチ → 形態素解析+文章のベクトル化で分析を行うことなど ○ Google Mapなどでの評価 → 自分の会社の口コミチェックなど *形態素解析 → ある文章を分かち書きにして、品詞ごとに分解するもの *文章のベクトル化 → 文章を形態素に分解してベクトルとすることで、内積や距離の定義ができるので単語間の関係性を定量 的に計算することができる

Slide 9

Slide 9 text

8 とにかく実践だ!

Slide 10

Slide 10 text

9 形態素解析+文章のベクトル化 理論)どのようにして文章を解析するのか? 1. 文章のベクトル化 a. 文章を形態素という要素に分解して、ベクトル化する 俺


Slide 11

Slide 11 text

10 形態素解析+文章のベクトル化 理論)どのようにして文章を解析するのか? 1. 文章のベクトル化 a. 文章を形態素という要素に分解して、ベクトル化する b. あるターゲット文章とベクトルとして比較する(cos類似度など)

Slide 12

Slide 12 text

11 形態素解析+文章のベクトル化 理論)どのようにして文章を解析するのか? 1. 文章のベクトル化 a. 文章を形態素という要素に分解して、ベクトル化する b. あるターゲット文章とベクトルとして比較する(cos類似度でまずは簡単に処理) c. 類似度の高いものを集め(ベクトル化の利点)、 そこからデータをフィルタリングする(形態素解析の利点) [ ‘まじでこのアプリ最高。感動した。’, ‘まかないの機能とかあると良いな。’, ‘aaaaaaaaaaaaa’, ]

Slide 13

Slide 13 text

12 形態素解析+文章のベクトル化 理論)どのようにして文章を解析するのか? 2. 文章の分析方法 ● Pythonを用いて実装 ● 以下のモジュールを用いる ○ Janome(形態素解析のメインモジュール) ○ Word2Vec(分散表現でベクトル化する機械学習モデル) ※Colabへのリンク :https://colab.research.google.com/drive/1GsAIOmJzTsIU-56gCbg63juo5M738QI9?usp=sharing

Slide 14

Slide 14 text

13 形態素解析+文章のベクトル化 より実践)Twitter(X) APIを用いて、形態素解析+ベクトル化を実施してみよう ● https://developer.twitter.com/ja/docs/twitter-api(X開発者プラットフォーム)

Slide 15

Slide 15 text

14 WordCloudで単語の頻度を可視化 実践)単語の頻度を可視化する方法 ● WordCloudを用いて実装 ○ 以下のモジュールを用いる ○ WordCloud(単語の頻度を画像で可視化) ※Colabへのリンク(先ほどと同じ) :https://colab.research.google.com/drive/1GsAIOmJzTsIU-56gCbg63juo5M738QI9?usp=sharing https://self-development.info/wp-content/uploads/2021/01/my.png

Slide 16

Slide 16 text

15 次回こそ 要件定義の作成 (どのように要件定義を書くか?)

Slide 17

Slide 17 text

16 参考リンク ● 形態素解析
 ○ Janomeを使ってPythonで形態素解析 :https://qiita.com/charon/items/661d9a25b2233a9f8da4 ● ベクトル化(ここでは分散表現) ○ Efficient Estimation of Word Representations in Vector Space(単語の分散表現の論文) :https://arxiv.org/abs/1301.3781 ○ Word2vecによる分散表現を可視化:https://qiita.com/g75hca/items/507a557f10d6133a699a
 ○ Word2Vecを理解する:https://qiita.com/g-k/items/69afa87c73654af49d36
 ○ 感情分析でニュース記事のネガポジ度合いをスコア化する :https://qiita.com/g-k/items/e49f68d7e2fed6e300ea
 ● WordCloud
 ○ Pythonを使ってWordCloud(ワードクラウド)を作成する:リンク


Slide 18

Slide 18 text

17 Thank you