質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

自然言語処理

自然言語処理は、日常的に使用される自然言語をコンピューターに処理させる技術やソフトウェアの総称です。

解決済

pythonにおけるNAND論理積を使用した自然言語抽出

amiska
amiska

総合スコア3

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

自然言語処理

自然言語処理は、日常的に使用される自然言語をコンピューターに処理させる技術やソフトウェアの総称です。

1回答

0評価

0クリップ

185閲覧

投稿2022/06/24 08:53

編集2022/06/25 12:43

pythonにおけるNAND論理積を使用した自然言語抽出についての質問です。

やりたいこと
・reモジュールを使用した文字抽出。
・文に含まれる単語のうち、指定した単語が欠損している場合のみ抽出。
・\\\\で区切られた文それぞれに対してマッチするか判定。

やったこと
・他サイトを参考に下記のコードを実行しましたが、思うような挙動をしません。

python

import re # マッチしてほしくない「せいきひょうげんにおける」「正規表現における\nNAND論理積マッチング」 # マッチしてほしい「正規表現における\n論理積マッチング」「正規表現\nマッチング」 s = "\\\\せいきひょうげんにおける\\\\正規表現における\nNAND論理積マッチング\\\\正規表現における\n論理積マッチング\\\\正規表現\nマッチング\\\\" target = ((?!.*正規表現)|(?!.*NAND)|(?!.*論理積)|(?!.*マッチング)) re.findall(target, s)

参考にしたサイト
https://faq.say-tech.co.jp/bom-for-windows-ver-7-0/p260

3.否定論理積(NAND)
否定論理積は、指定した複数の文字列について、全てが見つかった時には検知しません。(指定した文字列のう>ち、いずれかを含まなければ検知します)

キーワードとして「文字列1」、「文字列2」、「文字列3」を指定する場合、以下のように記述します。

^(((?!.*文字列1)|(?!.*文字列2)|(?!.文字列3))).$

その際、以下のテキストは検知されます。

テキスト内に文字列1と文字列2と文字列4が記載されたメッセージ

以下のテキストは検知されません。

テキスト内に文字列1と文字列2と文字列3が記載されたメッセージ

なお、「|(?!.*文字列)」を増やすことで、よりメッセージを絞り込むことができます。

^(((?!.*文字列1)|(?!.*文字列2)|(?!.*文字列3)|(?!.文字列4))).$

python

例) 単語「正規表現」「NAND」「論理積」「マッチング」のうち、1つ以上を含み、 なおかつ欠損がある場合にマッチ。 \\\\ # マッチしない例1 # 対象の単語を1つ以上含んでいない せいきひょうげんにおける \\\\ # マッチしない例2 # 対象の単語をすべて含む 正規表現における\nNAND論理積マッチング \\\\ # マッチする例1 # 対象の単語を1つ以上含んで欠損がある 正規表現における\n論理積マッチング \\\\ # マッチする例2 # 対象の単語を1つ以上含んで欠損がある 正規表現\nマッチング \\\\

よろしくお願いいたします。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

can110

2022/06/24 09:16

提示コードでは正規表現の部分でSyntaxErrorが発生します。 実行でき、なおかつ現象が再現、確認できるコードの提示をお願いします。
amiska

2022/06/24 09:30

修正しました

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

自然言語処理

自然言語処理は、日常的に使用される自然言語をコンピューターに処理させる技術やソフトウェアの総称です。