0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Pythonで法的文書を処理する(法律向けNLP)

Posted at

法律文書を読んで、「えっ…まるで1800年代の英語を読んでいるみたい…」と思ったことはありませんか?私もです。

実は、1年前に刑事弁護士の友人が、古い判例ファイルのデジタル化を手伝ってくれと言ってきました。最初はOCRと整理だけだったんですが、ある日彼がこう言ったんです:「判決文を論調や主張のスタイルで検索できたら最高じゃない?」と。

その時、「うーん…検索ってそういう風には機能しないんだけど」と思ったんですが、そこから自然言語処理(NLP)というラビットホールに落ちていったんです。特に法律文書に使うと、まるで秘密の言語を解読する感じ。そしてPythonを使えば?驚くほど簡単でした。裁判官じゃなくても使えます。

code1.png


検索では見つからない「法的な言い回し」をNLPで見つける

法律文書って、契約書や判決、規則など、とにかく分かりづらくて読みにくいですよね。何かをしようと思っても、普通の検索では限界があります。

でもNLPを使えば、膨大な情報の中から意味のあるデータを取り出せるんです。Pythonでなら、意外と簡単に。探す


Pythonコード例

from nltk.tokenize import word_tokenize

text = "被告人は合理的な疑いを超えて有罪とされた。"
tokens = word_tokenize(text)
print(tokens)

検索したい語句をトークン化して、意味ごとに分解できます。


import spacy

nlp = spacy.load("ja_core_news_sm")
doc = nlp("2021年7月5日、アダムス判事がイリノイ州で判決を下した。")
for ent in doc.ents:
    print(ent.text, ent.label_)

これで判決の中から「誰が」「どこで」「いつ」を抽出できます。刑事弁護士にとっては大助かりです。


from sklearn.feature_extraction.text import CountVectorizer
from sklearn.naive_bayes import MultinomialNB

docs = ["これは刑事事件です", "これは民事事件に関するものです"]
labels = ["刑事", "民事"]

vec = CountVectorizer()
X = vec.fit_transform(docs)

clf = MultinomialNB()
clf.fit(X, labels)

print(clf.predict(vec.transform(["窃盗と暴行の罪"])))

文書の分類を自動化し、膨大な情報の整理が可能になります。


doc = nlp("借主は毎月1日に家賃を支払うものとする。")
for token in doc:
    print(token.text, token.dep_, token.head.text)

契約文の「〜する場合」などの条件文も解析できます。これはhouses関連の契約にもよく出てきます。


from sklearn.decomposition import LatentDirichletAllocation
from sklearn.feature_extraction.text import CountVectorizer

texts = ["契約違反と罰則", "暴行と傷害の罪"]
vec = CountVectorizer()
X = vec.fit_transform(texts)

lda = LatentDirichletAllocation(n_components=2)
lda.fit(X)
print(lda.components_)

大量の判例からトピックを自動抽出してくれるので、法廷記録の整理に最適です。扱うデータが多くなるほど役立ちます。


まとめ

PythonとNLPで法律文書を解析することで、手作業では無理だったことが次々とできるようになります。小さなスクリプトから始めて、まずは一つ試してみてください。今週中に一度試してみてください—you’ll see!!

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?