「検索」Option Extraction研究のための韓国語コメントデータの作成


Opinion Extraction from Reviews


コメントの中の意見は展望語と意見語に分けられる.レストランAへのコメントでは、「食べ物」はaspectでも「おいしい」という意見詞でもあります.次の例は、ターゲット向けOptionWord Extraction(TOWE)タスクで使用されるデータセットです.paper link中国の研究者たちが自ら大量の資源を投入して構築したという.

ネイバーショッピングでの実例は以下の通り.(雰囲気などの色-多種多様)、(騒音-時計の秒針の音が聞こえない)、(スプレー-よく撮れている)などがハイライトですが、思ったより正確な部分だけを指すわけではありません.

韓国語データセットの構築


調査やOptionのタスクを把握することは,コメント中の意見抽出,まとめといえる.複数のドキュメントのSummarization、Optionion Extractionは、コア記事の抽象化または抽出ですが、1つのコメントではAspect-Option pairの抽出です.
上のTOWEデータセットと同じデータセットが必要です.しかし、現在ではほとんどがコメントと総合的な感情だけを含むデータセットです.このモデルを作成するには、独自のデータセットを構築する必要があります.
困難な原因は
1.労働強度が大きい.文の中のすべての単語にラベルを付ける方式なので、簡単な正負の感性だけを表記するよりも、より多くのリソースが必要です.
2.表示する必要がありますか?ぼかし通常予め定義されているカテゴリ(価格、食べ物、雰囲気など)とは異なり、aspectがこのコメントで主なキーワードと見なすべきかどうかは、人間の介入が必要になる可能性がある.
[原句]抽出したとしても、該当する意見を見つけるのは難しい.以下のコメントがある場合は、「たくさん量」(「量が多い」)や「雰囲気が静か」(「静かな雰囲気がいい」)のように、S-V関係だけではない修飾語を観察するので、パターンで見つけるのは難しいです.
たくさんの量が出てきました静かな雰囲気

直接ショッピングレビューにしましょう


データを直接作成してみました.どれだけのニーズがあるのか、信頼できるデータを作ることができるのか分かりませんが、簡単な修士論文用の研究をしたいと思っています.

データスクロール


まずは10万件以上の実際のショッピングレビューを集めました.特に,様々な特性が存在する可能性のある商品群を選択し,カテゴリを中心に行った.(口紅、スマートウォッチ、(照明のある雰囲気)加湿器)特定会社のショッピングプラットフォームデータなので、裁断プログラムコードはここでは公開されません.

前処理


スクロール時には、以下のような前処理が行われています.
1.大量のスペースをクリア
2.「1ヶ月使用期間」と「再購入」のコメントを別のコラムにマークし、コメント本文が「1ヶ月使用期間」、「再購入」で始まるのを避ける
3.同じショップで複数の商品を一度に購入した場合、同じ内容のコメントが重複して登録される場合があります.同じ内容が連続して登録されている場合は、1つだけ残して削除します.
# 1 대량공백 제거
import re
review = re.sub('\n+|\t+', ' ', review)
review = re.sub(' +', ' ', review)

# 2 한달사용기, 재구매 리뷰 처리
# 한달사용기
if review.startswith('한달사용기'):
	review = review[5:]
    	a_month.append(1)
else:
	a_month.append(0)

# 재구매
if review.startswith('재구매'):
	review = review[3:]
    	re_buy.append(1)
else:
	re_buy.append(0)
    
# 3 연속되는 중복 리뷰 제거
def drop_duplicates(reviews, ratings, re_buy, a_month):
    before = len(reviews)
    i = 0
    while i < len(reviews)-1:
        if reviews[i] == reviews[i+1]:
            reviews.pop(i)
            ratings.pop(i)
            re_buy.pop(i)
            a_month.pop(i)
            continue
        i += 1
    after = len(reviews)
    print(' >> {:,} reviews are removed (continuous duplicates)'.format(before-after))
    return reviews, ratings, re_buy, a_month

結果


その結果、以下のように「t」で区切られたデータセットが得られる.次に、これらのデータセットを使用してaspect wordとview wordをnon-supervisionに抽出しようとします.これは規則に基づいた、かなり手作業の仕事です.