タグ

自然言語処理に関するakishin999のブックマーク (74)

  • Rails × ruby-spacy 環境を Docker で構築して自然言語処理に入門する

    Rails で構築しているアプリケーションで自然言語処理を行いたかったので、Ruby で自然言語処理を行えるライブラリの ruby-spacy の検証を行うために docker で環境構築を行うことにしました。 後述しますが、単なる gem ではなくある程度準備が必要なもので、はまった個所もいくつかあったので、備忘録として残します。 ruby-spacy とは ruby-spacy とは Yoichiro Hasebe さんによって開発されたライブラリで、Python 用の自然言語処理ライブラリである spaCyRuby で利用できるようにしたライブラリです。 spaCy とは、Python/Cython で構築された自然言語処理を行うためのライブラリで、訓練済みの統計モデルを使用することができます。 参考: https://spacy.io/ 参考: https://ja.wiki

    Rails × ruby-spacy 環境を Docker で構築して自然言語処理に入門する
  • GPTが出した回答の確からしさを見えるようにしてみる - Taste of Tech Topics

    皆さんこんにちは。データサイエンティストチームYAMALEXのSsk1029Takashiです。 YAMALEXは Acroquest 社内で発足した、会社の未来の技術を創る、機械学習がメインテーマのデータサイエンスチームです。 この記事はGPTでチャットボットを作ってみるシリーズ第3弾です。 第1弾と第2弾もぜひご覧ください。 acro-engineer.hatenablog.com acro-engineer.hatenablog.com 第1弾では、GPTになるべく正確な回答をさせるために、回答の情報を持つ文書を検索し、それをもとに回答を生成するという内容を試しました。 文書をもとに回答を生成することで比較的正確な回答を取得することができました。 ただし、この回答も必ずしも正確な回答とは限らないので、どれくらい信頼していいのかを自動で判定する仕組みが欲しくなります。 今回は第1弾のシ

    GPTが出した回答の確からしさを見えるようにしてみる - Taste of Tech Topics
  • Pythonのライブラリで小説全文をテキストマイニングしよう

    テキストマイニングとは? テキストマイニングとは、テキストをプログラムに分析してもらい、文章の特徴を図や色などで表現することを指します。 SNSで注目されている単語やGoogle検索トレンドなども瞬時で分析でき、データサイエンティストやマーケターなども活用できます。 今回行うテキストマイニングで特に重要な処理が「形態素解析」と呼ばれるもので、繋がっている文章の中から単語を抜き出して意味を割り出す分析方法です。 例えば、私たち人間が「このサイトは非プログラマーが日常業務で使えるシンプルなPythonを紹介するメディアです。」 をという文章を読む時には 「この/サイト/は/非/プログラマー/が/日常/業務/で/使える/シンプル/な/Python/を/紹介/す/る/メディア/です。/」 と区切ることができます。しかし(英語は単語ごとにスペースを開けるのでプログラムで処理をしなくても問題はありませ

    Pythonのライブラリで小説全文をテキストマイニングしよう
  • BERT2BERTによるニュース記事のタイトル生成 - Qiita

    はじめに huggingfaceを使ったEncoder-Decoderモデルの練習の一貫として、BERT2BERTによる文章生成をやってみました。 BERT2BERTはEncoder-Decoderモデルの一種で、Encoder層もDecoder層もBERTのアーキテクチャーを採用したモデルのことを言います。 ただし、Decoder層のBERTは通常のBERTと以下の2点で異なります。 最初のMutil Head AttentionがMusked Multi Head Attenion(単方向)になってる MMHAとFFNの間にCross Attention層があり、Encoderの特徴量を受け取れるようになってる アーキテクチャーはほぼほぼTransformerと同様の認識ですかね。この辺の構造も含めて、Encoder-DecoderモデルやBERT2BERTの理論的なお話やhuggin

    BERT2BERTによるニュース記事のタイトル生成 - Qiita
  • Wikipediaを元にした日本語の名寄せデータセットを作成しました - Sansan Tech Blog

    こんにちは、DSOC 研究開発部の奥田です。以前の私のブログ記事ではコーギーの動画を見ていると書きましたが、とうとうコーギーを家族として迎え入れ、現在生後6ヶ月の子犬と暮らしております。 さて私たちDSOCでは、SansanやEightの価値を高めるために様々な自然言語処理のタスクに取り組んでおります。例えばニュース記事からの固有表現抽出では、私たちのサービスに特化した固有表現を対象に研究開発しています。その他にも様々あるなかで、特に重要かつ困難とされているものの一つに「名寄せ」というタスクがあります。AI人工知能と呼ばれるものが発達した現代においても、人間には当たり前にできるタスクが機械には難しいことがまだまだ存在します。 今回は、その「名寄せ」というタスクにおける日語でのデータセットを作成してみました。これをきっかけに、日語での名寄せというタスクの研究が進み分野が活性化することを

    Wikipediaを元にした日本語の名寄せデータセットを作成しました - Sansan Tech Blog
  • 自然言語からSQLを自動生成するDeep Learning技術 - Qiita

    記事は Towards Complex Text-to-SQL in Cross-Domain Database with Intermediate Representation(論文, リポジトリ)のサーベイ記事です。 日鉄ソリューションズ(NSSOL)様での研究開発インターンの一環として執筆しました。 今回紹介するのは、ざっくり言えば、自然言語で記述された質問からSQLクエリを生成するタスク(Text-to-SQL)において、文脈自由な中間表現を導入して性能を上げた研究で、提案モデルはIRNetと呼ばれています。 この研究ではSpider (論文, サイト) というデータセットを用いています。Spiderは従来のText-to-SQLデータセットよりも複雑な事例を多く含んでいます。 Spiderの公式サイトで挙げられている難易度が中くらい(Meidum)の例がこちらです: 複数テーブ

    自然言語からSQLを自動生成するDeep Learning技術 - Qiita
  • 「募ってはいるが、募集はしていない」 人たちへ - Qiita

    # -*- coding:utf-8 -*- import os import urllib.request import json import configparser import codecs import csv import sys import sqlite3 from collections import namedtuple import types #/_/_/_/_/_/_/_/_/_/_/_/_/COTOHA_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ # ここの部分のコードはこちらから取ってきています。 # https://qiita.com/gossy5454/items/83072418fb0c5f3e269f class CotohaApi: # 初期化 def __init__(self, client_id, client_secret,

    「募ってはいるが、募集はしていない」 人たちへ - Qiita
  • 医療用語に注目した文書の類似度計算(SCDV+XGBoost) - エムスリーテックブログ

    はじめに エンジニアリングGの西場(@m_nishiba)です。 エムスリー Advent Calendar 2018に参加しています。 文書間の類似度計算をしたい。 エムスリーでは20以上のサービスを展開しています。各サービスごとにコンテンツのフォーマットが大きく異なるのですが、横断して類似するコンテンツを表示したいというニーズがあります。 例えば、下記の3つの文書があるとします。 例1 糖尿病患者に実践してほしい ○○○○○ ・演者:〇〇先生(大阪府立大学 地域保健学域) 【ライブ放送】 18:00〜18:40(17:30サイトオープン) ※ライブのみの1回限りの講演会です。 例2 喘息患者に実践してほしい ○○○○○ ・演者:〇〇先生(名古屋大学 地域保健学域) 【ライブ放送】 18:00〜18:40(17:30サイトオープン) ※ライブのみの1回限りの講演会です。 例3 糖尿病は、

    医療用語に注目した文書の類似度計算(SCDV+XGBoost) - エムスリーテックブログ
  • 自然言語と機械学習で使用される英語の私的まとめ - Qiita

    説明 自然言語処理と機械学習で見つけた英語の私的まとめ 自然言語処理 corpus(コーパス): 品詞情報が付与された大量の文章のまとまり。 または、品詞情報が含まれない文章のまとまりをさす。 The Curse of Dimensionality(次元ののろい) 計算処理されるベクトルの行数、または列数の増加によって 処理時間とメモリ消費が増大すること。 (しばしば指数関数的に増大する) Latent Semantic Indexing(LSI): 次元削減に使用される Singular Value Decomposition(SVD): 次元削減に使用される lemma(レマ): 見出し語, 辞書に載っている形式の単語 lemmatization: 見出し語に変換すること。 例 meet, meeting) I'll attend meeting. 変換後 - meeting I me

    自然言語と機械学習で使用される英語の私的まとめ - Qiita
  • テキストの構造化を支える技術 -概要編- - Ahogrammer

    最近、情報抽出、特にOpen Information Extraction(OpenIE)という分野について勉強しています。せっかく勉強しているので、学んだ内容について何回かに分けて紹介していこうと思います。第一回目の今回は、OpenIEという分野の概要について紹介し、OpenIEのきっかけとなったシステムであるTextRunnerとその仕組みについて説明します。 Open Information Extractionとは? OpenIEについて述べる前に、まずは伝統的な情報抽出について述べておきましょう。情報抽出は非構造化データであるテキストを構造化された表現に変換するタスクです*1。情報抽出で抽出される情報は関係のタプルの形(arg1, rel, arg2)で表現されます。このタプルは関係を示すフレーズ(rel)とその対象であるエンティティ(args)から成ります。一般的な処理の流れと

    テキストの構造化を支える技術 -概要編- - Ahogrammer
  • ネガポジ判定を行うGem作ってみた - Qiita

    自分は自然言語処理の人間ではないのですが、文章がネガティブな意味合いを持つのか、ポジティブな意味合いを持つのか判定させる必要(以降、ネガポジ分析と表現します)が出てきたため、いろいろな方の記事を参考に挑戦してみました。 ネガポジ分析 ネット上を探してみると、文章のネガティブさ、ポジティブさを判定しようとしている方がたくさんいらっしゃいます。 1.R言語 - テキストのネガポジ度を分析する http://qiita.com/uchim/items/db20d662d762efbfa9e5 2.ハセテツラボ PythonTwitterでのツイートをネガポジ判定してみた結果。。。 http://tt-house.com/2013/08/twitter-nega-posi.html 3.Atrae Tech Blog 僕が感情豊かであることをネガ・ポジ判定で証明する http://atraete

    ネガポジ判定を行うGem作ってみた - Qiita
  • 自然言語処理の前処理・素性いろいろ - Debug me

    ちゃお・・・† 舞い降り・・・† 先日、前処理大全というを読んで自分なりに何か書きたいなと思ったので、今回は自然言語処理の前処理とそのついでに素性の作り方をPythonコードとともに列挙したいと思います。必ずしも全部やる必要はないので目的に合わせて適宜使ってください。 前処理大全[データ分析のためのSQL/R/Python実践テクニック] 作者:橋 智光技術評論社Amazon 前処理 余分な改行やスペースなどを除去 with open(path) as fd: for line in fd: line = line.rstrip() アルファベットの小文字化 text = text.lower() 正規化 (半角/全角変換などなど) import neologdn neologdn.normalize('ハンカクカナ') # => 'ハンカクカナ' neologdn.normalize

    自然言語処理の前処理・素性いろいろ - Debug me
  • 形態素解析ツールの比較 (NLP2018) - Qiita

    NLP2018のワークショップに行ってきたのですが、そこで聞いてきたことのうち、形態素解析ツールに関することを大雑把にまとめておきます。聞いたことをまとめることが目的なので、詳細は各ツールのWebサイトやgithubページへ行ってください。 間違っている部分、追加したい内容があればコメントでお願いします。 追記: 2018/04/02 nlp2018の発表資料が公開されました。 Juman++ (リンク) MeCab (リンク) KyTea (リンク) Unidic (リンク) https://sites.google.com/view/nlp2018ws/ NLP2018 形態素解析の今とこれから 趣旨: どういう手法・ツールをどのようなタスクに対して使うべきかを選べるように、各ツールの開発者の発表を基に比較してもらうこと。 さまざまな発表がありましたが、形態素解析ツールに焦点を当ててま

    形態素解析ツールの比較 (NLP2018) - Qiita
  • Elasticsearchのための新しい形態素解析器 「Sudachi」 - Qiita

    tl;dr (要約) Kuromojiに代わる新しい形態素解析器「Sudachi」 なにが良いの? 最新の辞書 企業(ワークスアプリケーションズ)による継続的な更新 複数の分割単位 → 検索用途での再現率と適合率の向上 プラグインによる拡張 省メモリ Elasticsearchで使いたい プラグイン: WorksApplications/elasticsearch-sudachi 使い方は当記事の後半をご覧ください 注: この記事の執筆者はSudachiの開発に関わっています さまざまな形態素解析形態素解析は、伝統的な自然言語処理(Natural Language Processing, NLP)において基盤となる技術です。そして世の中にはさまざまな形態素解析器が存在します。販売されているものもありますが、一般に公開されているものだけでもいくつか例をあげると、JUMANとRNNLMを利

    Elasticsearchのための新しい形態素解析器 「Sudachi」 - Qiita
  • 大自然言語時代のための、文章要約 - Qiita

    さまざまなニュースアプリ、ブログ、SNSと近年テキストの情報はますます増えています。日々たくさんの情報が配信されるため、Twitterやまとめサイトを見ていたら数時間たっていた・・・なんてこともよくあると思います。世はまさに大自然言語時代。 from THE HISTORICAL GROWTH OF DATA: WHY WE NEED A FASTER TRANSFER SOLUTION FOR LARGE DATA SETS テキスト、音声、画像、動画といった非構造データの増加を示したグラフ そこで注目される技術が、「要約」です。膨大な情報を要点をまとめた短い文章にすることができれば、単純に時間の節約になるだけでなく、多様な視点から書かれた情報を並べて吟味することもできます。 文書は、この文書要約(Text Summarization)についてその概観を示すことを目的として書かれていま

    大自然言語時代のための、文章要約 - Qiita
  • 英文の自然言語処理におススメ!お手軽なPolyglotを使ってみた。 - astamuse Lab

    こんにちは。白木(@YojiShiraki)です。デザイナーです。 今日はPythonで英文形態素解析をする上でお手軽便利なpolyglotについて紹介します。 背景 当社ではデータを分析・解析する機会がままありまして、こうしたときに自然言語解析の処理のツールを利用しています。特に最近では英語データが多く、このあたりのツールのニーズが高くなっています。 しかし、いざ英語の解析となると意外に情報がありません。 例えば、日語の解析ならMeCabやChaSen、Kuromojiといったものはすぐ見つかります。しかし英文の自然言語解析ではTreeTaggerの情報は目につくもののイマイチまとまった情報がありません(このページやこのページに他の選択肢がまとまっていますが)。 おそらくこの領域ではNLTKが王道なのかと思いますが、やや重厚感あります。 そこでもう少しライトなものをということでPoly

    英文の自然言語処理におススメ!お手軽なPolyglotを使ってみた。 - astamuse Lab
  • 自然言語処理における前処理の種類とその威力 - Qiita

    自然言語処理に前処理は不可欠です。テキストは文字の羅列であり構造化されていないため、そのままでは処理するのが難しいです。特にWebテキストの中には HTMLタグ や JavaScript のコードといったノイズが含まれています。このようなノイズは前処理して取り除かなければ期待する結果は得られないでしょう。 出典: Deep learning for computational biology 記事では自然言語処理における前処理の種類とその威力について説明します。説明順序としては、はじめに前処理の種類を説明します。各前処理については、1.どんな処理なのか、2.なぜその処理をするのか、3.実装方法(なるべく) という観点から説明します。種類について説明した後、前処理の威力を測るために前処理をした場合としなかった場合での文書分類の結果を比較します。 前処理の種類と実装 この節では以下に示す5つ

    自然言語処理における前処理の種類とその威力 - Qiita
  • ツイートを要約してくれる執事を作りました【最大被覆モデル】 - Qiita

    はじめに 今回は最大被覆モデルを使ったツイートの要約APIを作りました。キーワードを指定すると直近の話題を要約して教えてくれる、まるで執事のようなAPIです。たとえば「気になっている製品の市場の声を知りたい」「自分の会社のニュースや評判を知りたい」「今流行しているFGO関連のネタツイートを知りたい」などの用途で使えます。 API公開しました ツイート要約コンシェルジュ 使うまでの手順や解説はこちら Javaサンプルコードはこちら public class Api27TwitterSummarizeExample { static String ENDPOINT = "https://api.apitore.com/api/27/twitter-summarize/get"; static String ACCESS_TOKEN = "YOUR-ACCESS-TOKEN"; public s

    ツイートを要約してくれる執事を作りました【最大被覆モデル】 - Qiita
  • fastTextを使って単語じゃないものの分散表現を獲得する - Qiita

    ※ 2017/1/16に追記しました Retty Advent Calendarで穴が空きそうになったとき用に記事用意してたんですが、ちゃんとみんな埋めてくれたみたいです。良かった。 で、用意した記事が無駄になってももったいないので普通の記事として公開しちゃいます。 皆さんfastTextって知ってますか? Facebookが公開している自然言語処理用のツールです。GPU使わないのに超速いのでありがたく使ってます。 単語の分散表現を学習させたり文章の分類とかができるんですが、分散表現の学習の仕組みって語彙にID振ってone-hot vectorにして、それを次元圧縮してるんですよね?(適当) じゃあ、ID列で表せる何かならなんでも分散表現にできるんじゃね?って思いません? 思いついたらやってみましょう。 用意するもの fastText Rettyユーザーのお店詳細ページの閲覧履歴 やること

    fastTextを使って単語じゃないものの分散表現を獲得する - Qiita
  • 【転職会議】クチコミをword2vecで自然言語処理して会社を分類してみる - Qiita

    はじめに LivesenseAdventCalendar 2016 の20日目を担当する @naotaka1128 です。 現在、転職会議という転職クチコミサービスのデータアナリストを担当しております。 転職会議は会社のクチコミが数百万件集まっている日最大級の転職クチコミサービスです。現状はクチコミや評点を表示しているだけなのですが、今後はクチコミを自然言語処理などで分析して今までは手に入らなかったような有益な情報を世の中に提供していきたいと思っております。 今回はその取っ掛かりとして word2vec および doc2vec という自然言語処理の技術を用いてクチコミを分析し、会社の分類などを行ってみようと思います。 使用する自然言語処理技術 昨今、word2vecという自然言語処理の技術が話題です。ご存じの方も多いかと思いますが、大量の文章をもちいて単語をベクトル表現で数値化し、以下の

    【転職会議】クチコミをword2vecで自然言語処理して会社を分類してみる - Qiita