Author

RSS
Advanced Analytics COE ソリューションズ・アーキテクト

医療機関および製薬企業勤務を経て、SAS Japanに入社。主に医療データ分析と自然言語処理を担当。

Analytics
SAS Hackathon 2023 / ハッカソン紹介

Hack SAS! SAS HackathonはSAS社が毎年春に開催する完全オンライン開催のハッカソン・イベントです。参加チームは開催期間の1か月間を使って、自分たちで設定した社会課題やビジネス課題を、SAS Viya(および任意のツール)を使って解決に導きます。エントリーできる部門が複数用意されており、参加チームによって選べるようになっています。2023年は部門が計10個あり、部門ごとの賞に加え、技術賞、特別賞、地域賞の3つの部門横断賞が用意されました。各賞ごとに個別の審査基準が設けられているため、技術レベルを高めるのも良し、ビジネスインパクトを狙いに行くのも良し、等々様々な戦い方があり得ます。なお審査は部門ごとにSAS社員から選ばれたインダストリ・エキスパートが実施するため、常に適正な評価が期待できます。 今年は世界各国から130チーム以上がエントリーしました。受賞チームは9月開催のSAS Exploreに招待されました。その他ハッカソンについての詳しい内容については、EnterpriseZine編集部による日本語のSAS Hackathonについての紹介記事もありますのでご興味があればご覧ください。 ところでSAS Hackathonは他のハッカソン・イベントと比べてどんなところがユニークなのでしょうか?よくあるハッカソン・イベントでは、特定のツールの使い方を試行錯誤を通して学ぶ、であったり、新しいサービスやアプリケーションの開発、などが目的になっていますが、SAS Hackathonでは以下3点を主な目的にしています: ビジネス課題の解決 Data for Goodの観点から、データ分析の結果をより良い社会の実現のために使ってもらう(データ活用による人道支援や社会課題の解決) データリテラシーを備えた人材の育成・輩出・ネットワーキング そしてこれらの目的の先にあるもの、つまりはアプリケーションの開発およびサービス化といった段階における商業化の支援もSAS Hackathonで行います。もちろん、知的財産は参加者が保有します。 様々なオモテナシ 以上の3つの目的を達成するために重要な要素の一つが、組織の垣根を越えたコラボレーションの実現です。その実現を手助けするため、全世界のSAS社員が様々な工夫をして参加者をもてなします。オモテナシ駆動型ハッカソン・イベント、それがSAS Hackathon、と言っても過言ではありません。ではどのようにしてSAS社員はSAS Hackathonの参加者をもてなすのでしょうか? メンターによるオモテナシ イベントにエントリーしたチームにはそれぞれメンターが付きます。メンターはSAS製品やデータ分析に詳しいSAS社員から選ばれ、チームが成功裏にハッカソンを終えられるようサポートします。分からないことがあったら何でもメンターに質問できます。 学習コンテンツによるオモテナシ 普段は有償で提供されているSASのラーニング・コースやオンデマンド学習コンテンツが、ハッカソン期間中は参加者に無償で提供されるため、技術的なキャッチアップやデータリテラシーの習得がやり易くなっています。 分析環境によるオモテナシ 分析環境も無償で提供されます。既に構築済みですぐに使えるSAS Viya環境を使って直ちに分析を開始できます。そこにはJupyter Hubも入っていてPythonやRが使えます。環境構築の手間が要りません。その他、アプリケーション開発を簡便に行うためのツールなども提供されます。詳細はこちらのページをご覧ください。それ以外のツールを使いたい場合は、参加チーム自身で準備することになりますが、基本的にどんなツールを使ってもOKです。 フォーラムによるオモテナシ また、参加チームはSAS Hacker's Hubで他の参加チームと交流したりディスカッションすることができます。参加者同士のネットワーキングの場にもなっています。 自由闊達なムード醸成によるオモテナシ SASと聞くと少々お堅いイメージを持たれる方も多いかも知れません。しかし近頃のSAS社員はオレンジ色のSAS Hackathonフーディーを着て、課題解決のためのコラボレーションの重要性を表現したラップを歌います。   It's more than a competition It's your story told, the goals that

Analytics
自然言語処理とSAS (3)

こんにちは!SAS Institute Japanの堀内です。今回も自然言語処理について紹介いたします。 前回の投稿では、実際にSASを使って日本語の文章を扱う自然言語処理の例を解説しました。 最終回の本投稿ではその応用編として、自然言語処理の代表的なタスクとSASによる実装方法を紹介します。なお、ここでいうタスクとは「定式化され一般に共有された課題」といった意味になります。自然言語処理には複数のタスクがあり、タスクごとに、共通する部分はあるとはいえ、問題解決のアプローチ方法は基本的に大きく異なります。SASには各タスクごとに専用のアクションセット1が容易されています。 要約タスク その名の通り文章を要約するタスクです。SASではtextSummarizeアクションセットで対応可能です。 ここでは、NHKのニュース解説記事「気になる頭痛・めまい 天気が影響?対処法は?」(https://www.nhk.or.jp/kaisetsu-blog/700/471220.html) の本文を5センテンスで要約してみましょう。 import swat conn = swat.CAS('mycashost.com', 5570, 'username', 'password') conn.builtins.loadActionSet(actionSet='textSummarization') conn.textSummarization.textSummarize(addEllipses=False, corpusSummaries=dict(name='corpusSummaries', compress=False, replace=True), documentSummaries=dict(name='documentSummaries', compress=False, replace=True), id='Id', numberOfSentences=5, table={'name':CFG.in_cas_table_name}, text='text', useTerms=True, language='JAPANESE') conn.table.fetch(table={'name': 'corpusSummaries'}) numberOfSentencesで要約文のセンテンス数を指定しています。結果は以下の通りです。 'まず体調の変化や天気、気温・湿度・気圧などの日記をつけ、本当に天気が影響しているのか、どういうときに不調になるのかパターンを把握すると役立ちます。 気温・湿度以外にも、気圧が、体調の悪化や、ときに病気の引き金になることもあります。 私たちの体は、いつも耳の奥にある内耳にあると言われている気圧センサーで、気圧の変化を調整しています。 ただ、天気の体への影響を研究している愛知医科大学佐藤客員教授にお話ししを伺ったところ、「台風最接近の前、つまり、気圧が大きく低下する前に、頭が痛いなど体調が悪くなる人は多い」ということです。 内耳が敏感な人は、わずかな気圧の変化で過剰に反応し、脳にその情報を伝えるので、脳がストレスを感じ、体のバランスを整える自律神経が乱れ、血管が収縮したり、筋肉が緊張するなどして、その結果、頭痛・めまいなどの体に様々な不調につながっているのです。' 重要なセンテンスが抽出されていることが分かります。   テキスト分類タスク 文章をいくつかのカテゴリに分類するタスクです。その内、文章の印象がポジティブなのかネガティブなのか分類するものをセンチメント分析と呼びます。ここでは日本語の有価証券報告書の文章をポジティブかネガティブか判定してみます。使用するデータセットは以下になります。 https://github.com/chakki-works/chABSA-dataset (なお、こちらのデータセットには文章ごとにポジティブかネガティブかを示す教師ラベルは元々付与されておりませんが、文章内の特定のフレーズごとに付与されているスコアを合算することで教師ラベルを合成しております。その結果、ポジティブ文章は1670文章、ネガティブ文章は1143文章、合計2813文章になりました。教師ラベルの合成方法詳細はこちらのブログをご覧ください。) pandasデータフレームにデータを格納した状態を確認してみましょう。 df = pd.read_csv(CFG.local_input_file_path) display(df)

Analytics
自然言語処理とSAS (2)

こんにちは!SAS Institute Japanの堀内です。今回も自然言語処理について紹介いたします。 第1回目の投稿では、最近の自然言語処理の応用例とSAS社が携わった自然言語処理関連の実案件の概要を紹介しました。 第2回目の本投稿では実際にSASを使って日本語の文章を扱う自然言語処理の例を解説していきます。 テキストデータって何? 自然言語処理を語る前に、自然言語処理が処理対象とするデータのことを知る必要があります。自然言語処理で扱われるデータはテキストデータと呼ばれています。ここからはテキストデータがどういうものか探っていきます。 テキストとは以下のようなものです。 「自然言語処理で扱われるデータはテキストデータと呼ばれています。本投稿ではテキストデータがどういうものか探っていきます。」 何の変哲もない日本語の文章です。日本語以外の言語で書かれた文章ももちろんテキストと呼ばれます。 ではテキストデータとは何でしょう?データと言うからには何らかの構造を持っていると考えます。例えば行と列が与えられたテーブルデータがわかりやすい例です。 テキストデータと呼ぶとき、テキストに何らかの構造を与えられたものを想起すると良いかと思います。上で挙げたサンプルのテキストをテキストデータに変換してみましょう。 ["自然言語処理で扱われるデータはテキストデータと呼ばれています。",  "本投稿ではテキストデータがどういうものか探っていきます。"] これは句読点でテキストを区切り、リストに格納した例です。やりかたは他にもあります、 [["自然言語処理",  "で", "扱われる", "データ", "は", "テキストデータ", "と", "呼ばれて", "います", "。"],  ["本投稿", "では", "テキストデータ", "が", "どういうもの", "か", "探って", "いきます", "。"]] これは先ほどの例で2つのテキストに区切ったうえで、それぞれのテキストを更に単語ごとに区切って別々のリストに格納した例になります。これをテーブルデータのように整えると、 ID COL1 COL2 COL3 COL4 COL5 COL6 COL7 COL8 COL9 COL10 1 自然言語処理 で 扱われる