質問編集履歴

6

コードの修正

2020/09/17 15:53

投稿

tsuboi
tsuboi

スコア3

test CHANGED
File without changes
test CHANGED
@@ -43,105 +43,3 @@
43
43
 
44
44
 
45
45
  ### 該当のソースコード
46
-
47
-
48
-
49
- ```python
50
-
51
- text = "AIが会議のキーワードや関連画像をリアルタイムで分析・可視化,アイデア出しを活発に。 デザインスタジオのBIRDMANは7月6日、AIが会議中の会話を自動分析し、関連語句や画像をリアルタイムでスクリーンに表示するツール「Inspiration Wall」を発表した。発想が広がるような画像や言葉を提示することでアイデア出しを支援するという。価格は未定で、11月から販売を始める。 会議中の会話をマイクで拾い、AIが独自アルゴリズムで内容を分析。会議のキーワードを自動で抽出し、その関連語句や類語をツリー形式でスクリーンに表示する。外部のフォトストックサービスのAPIと連携することで、会話の内容に合った画像を自動で選出・表示し、視覚的なイメージを広げることもできるという。 会議開始時に発行するQRコードをスマホで読み取れば、画像や語句の表示を一時停止できる他、AIが表示した画像をリスト化して、お気に入り登録することも可能。会議終了後には、お気に入り登録した画像やテキスト化した議事録をスマホ画面で確認できるという。 デザインや広告制作での利用を見込み、月額課金制か、あらかじめソフトをインストールしたPCを販売する方式で提供する。AIは電通子会社のデータアーティストが開発した。将来はリモート会議にも対応するという。"
52
-
53
- import spacy
54
-
55
- import itertools
56
-
57
- nlp = spacy.load('ja_ginza')
58
-
59
-
60
-
61
- #テキストの解析
62
-
63
- text = nlp(text)
64
-
65
-
66
-
67
- #1文目と2文目の文章を抜き出す。
68
-
69
- sents = list(text.sents)
70
-
71
- sents = sents[:2]
72
-
73
-
74
-
75
- #1文目と2文目に含まれている名詞句を抽出する
76
-
77
- sentence1 = sents[0]
78
-
79
- sentence2 = sents[1]
80
-
81
- noun1 = list(sentence1.noun_chunks)
82
-
83
- noun2 = list(sentence2.noun_chunks)
84
-
85
-
86
-
87
- #1文目と2文目の名詞句のコサイン類似度(0.65以上の単語を降順で出力)
88
-
89
- answer_list = [[token1.similarity(token2), token1, token2 ]for token1, token2 in itertools.product(noun1, noun2) if token1.similarity(token2)>=0.65]
90
-
91
- answer_list = sorted(answer_list)[::-1]
92
-
93
-
94
-
95
- #タイトルに含まれる単語をリストにまとめたもの
96
-
97
- important_word_in_title = []
98
-
99
- for i in noun1:
100
-
101
- for j in noun2:
102
-
103
- noun = i.similarity(j)
104
-
105
- if noun >= 0.65:
106
-
107
- important_word_in_title.append(i)
108
-
109
-
110
-
111
- important_word_in_title = list(dict.fromkeys(important_word_in_title))
112
-
113
-
114
-
115
-
116
-
117
- #1行目以外の文を抽出し、名詞句も抽出する
118
-
119
- sents = list(text.sents)
120
-
121
- sents_without_title = sents[1:]
122
-
123
-
124
-
125
- a = "".join(map(str, sents_without_title))
126
-
127
- a = nlp(a)
128
-
129
- noun_all = list(a.noun_chunks)
130
-
131
-
132
-
133
-
134
-
135
- #1行目に含まれる単語と、1行目意外に含まれる単語のコサイン類似度を算出し、降順に並べる。
136
-
137
- answer_list = [[token1.similarity(token2),token1 ,token2]for token1, token2 in itertools.product(important_word_in_title, noun_all) if token1.similarity(token2)<1]
138
-
139
- answer_list = sorted(answer_list)[::-1]
140
-
141
- answer_list = [x[2] for x in answer_list]
142
-
143
- answer_list = list(dict.fromkeys(answer_list))
144
-
145
- print(answer_list)
146
-
147
- ```

5

結果の改善

2020/09/17 15:53

投稿

tsuboi
tsuboi

スコア3

test CHANGED
File without changes
test CHANGED
@@ -5,6 +5,10 @@
5
5
  いろいろ重複を削除する方法を試しましたが、重複を削除することができません。
6
6
 
7
7
  set(), dict.fromkeys(), 新しいリストを用意し、if文で重複する単語をリストに追加する方法も試しました。
8
+
9
+
10
+
11
+ 出力される単語は、<class 'spacy.tokens.span.Span'>という風に結果が出力されます。
8
12
 
9
13
  重複削除後
10
14
 
@@ -17,6 +21,20 @@
17
21
  重複削除前
18
22
 
19
23
  ![重複削除前](8d222eb13a77322fd2e39e44ba7e2e6a.png)
24
+
25
+
26
+
27
+
28
+
29
+ dict.fromkeys()で重複削除後の出力される単語の数を表示した物です。
30
+
31
+ 結果より、同じ単語でも違う単語として、判断しているます。
32
+
33
+ ```
34
+
35
+ {会議中: 1, 会議中: 1, 画像: 1, 画像: 1, 画像: 1, 画像: 1, リモート会議: 1, 会議開始時: 1, 会議終了後: 1, お気に入り登録した画像: 1, その関連語句: 1, 関連語句: 1, 一時停止できる他: 1, 広がるような画像: 1, キーワード: 1, お気に入り登録すること: 1, 表示: 1, 広告制作: 1, データアーティスト: 1, テキスト化した議事録: 1, スマホ画面: 1, 内容: 1, 内容: 1, こと: 1, こと: 1, こと: 1, 視覚的なイメージ: 1, 販売: 1, 分析: 1, 独自アルゴリズム: 1, 「Inspiration Wall: 1, 11月: 1, 7月6日: 1, ツリー形式: 1, 利用: 1, ツール: 1, PC: 1, デザインスタジオ: 1, ソフト: 1, 自動: 1, 自動: 1, フォトストックサービス: 1, API: 1, 価格: 1, スマホ: 1, 語句: 1, リアルタイム: 1, デザイン: 1, 外部: 1, 月額課金制: 1, スクリーン: 1, スクリーン: 1, AI: 1, AI: 1, AI: 1, 方式: 1, 将来: 1, 言葉: 1, 会話: 1, 会話: 1, 会話: 1, 電通子会社: 1, 会議: 1, 発想: 1, マイク: 1, アイデア出し: 1, QRコード: 1, 類語: 1, BIRDMAN: 1}
36
+
37
+ ```
20
38
 
21
39
 
22
40
 

4

改善点の追加

2020/09/17 10:28

投稿

tsuboi
tsuboi

スコア3

test CHANGED
File without changes
test CHANGED
@@ -6,7 +6,15 @@
6
6
 
7
7
  set(), dict.fromkeys(), 新しいリストを用意し、if文で重複する単語をリストに追加する方法も試しました。
8
8
 
9
+ 重複削除後
10
+
9
11
  ![重複削除後](2c09074853dbd00e830a879df74abb6c.png)
12
+
13
+
14
+
15
+
16
+
17
+ 重複削除前
10
18
 
11
19
  ![重複削除前](8d222eb13a77322fd2e39e44ba7e2e6a.png)
12
20
 

3

改善点の追加

2020/09/17 09:20

投稿

tsuboi
tsuboi

スコア3

test CHANGED
File without changes
test CHANGED
@@ -6,7 +6,9 @@
6
6
 
7
7
  set(), dict.fromkeys(), 新しいリストを用意し、if文で重複する単語をリストに追加する方法も試しました。
8
8
 
9
- ![イメージ説明](2c09074853dbd00e830a879df74abb6c.png)
9
+ ![重複削除後](2c09074853dbd00e830a879df74abb6c.png)
10
+
11
+ ![重複削除前](8d222eb13a77322fd2e39e44ba7e2e6a.png)
10
12
 
11
13
 
12
14
 

2

コードの修正

2020/09/17 09:19

投稿

tsuboi
tsuboi

スコア3

test CHANGED
File without changes
test CHANGED
@@ -114,4 +114,6 @@
114
114
 
115
115
  answer_list = list(dict.fromkeys(answer_list))
116
116
 
117
+ print(answer_list)
118
+
117
119
  ```

1

説明の追加

2020/09/17 09:16

投稿

tsuboi
tsuboi

スコア3

test CHANGED
File without changes
test CHANGED
@@ -3,6 +3,8 @@
3
3
  以下のように、リストに入っている単語の重複の削除を行いたい。
4
4
 
5
5
  いろいろ重複を削除する方法を試しましたが、重複を削除することができません。
6
+
7
+ set(), dict.fromkeys(), 新しいリストを用意し、if文で重複する単語をリストに追加する方法も試しました。
6
8
 
7
9
  ![イメージ説明](2c09074853dbd00e830a879df74abb6c.png)
8
10