Python(NLP)の可読性インデックス?
自然言語処理は、自然言語の自動生成と理解の研究です。コンピュータ技術が今日ほとんどすべての産業に統合されているので、これは解決するためにますます興味深いタスクになりつつあります。自然言語処理内の1つの特定の分野を研究します。読みやすさ。これには、テキストの読みやすさを判断するというトピックが含まれます。これは、テキストを読んだり理解したりするのがどれほど難しいかを示しています。
読みやすさの指標は、テキストを読んで理解することがどれほど難しいか(または簡単か)を示す数値です。読みやすさを判断するためのいくつかの異なるテストがあり、それらには異なる使用分野があります。
「読みやすさは、ドキュメントを読みやすくすることを意味します」[13]。読みやすさを計算するためのさまざまなテスト[9]があります。読みやすさのテストは、「読みやすさの予測であると考えられていますが、読みやすさを判断する唯一の方法ではありません」
一部のテストは言語に依存しませんが、特定の言語により適したテストがいくつかあります。さまざまな読みやすさテストの知識は私たちにとって不可欠です。
読みやすさのテスト- | (言語)を対象- | 簡単な説明と数式- |
---|---|---|
自動読みやすさ指数(ARI) | 英語 | テキストの理解度を測定するように設計されています。出力は、テキストを理解するために必要な米国のグレードレベルのおおよその表現です。ARI = 4.71 * (characters/words) + 0.5 * (words/sentence) -21.43 |
フレッシュリーディングのしやすさ | 英語 | リーディングパッセージの理解がいかに難しいかを示すように設計されています。スコアが高いほど、読みやすい資料を示します。数字が小さいほど読みにくい文章になります。FRE = 206.835 − 1.015*(total words/ total sentences) − 84.6 * (total syllables/ total words) |
FleschKincaidグレードレベル | 英語 | リーディングパッセージの理解がいかに難しいかを示すように設計されています。結果は、米国の成績レベルに対応する数値になります。FKGL = 0.39 * (total words/ total sentences) + 11.8 (total syllables/ total words) -15.59 |
Coleman-Liau Index | 英語 | テキストの理解度を測定するように設計されています。出力は、テキストを理解するために必要と思われる米国のグレードレベルのおおよそのものです。CLI = (5.89 * (characters/ words)) − (30 *(sentences/words)) − 15.8 |
Gunning Fog Index | 英語 | 英語の文章のサンプルの読みやすさを測定するように設計されています。結果のインデックスは、最初の読書でテキストを簡単に理解するために人が必要とする正式な教育の年数(米国の成績)を示します。GFI = 0.4 * (( words/ sentence) + 100 * (complex words/ words)) |
Linsear write | 英語 | 空軍が技術マニュアルの読みやすさを計算するのに役立つように開発された、英語のテキストの読みやすさの指標。ウィキペディアの公式:
|
レートインデックス(RIX) | 西ヨーロッパ言語 | これは、西ヨーロッパのあらゆる言語のドキュメントで使用できるため便利です[3]。出力は、0(非常に簡単)から55+(非常に難しい)の間のスコアです。RIX = (Long Words/ Sentences) (long words = words where number of characters > 6) |
Lesbarhets Index(LIX) | 西ヨーロッパ言語 | これは、西ヨーロッパのあらゆる言語のドキュメントで使用できるため便利です[2][3]。出力は、グレードレベルを示すインデックスです。 0.1未満のインデックスはグレード1で、7.2以上は大学のグレードです。LIX = (total words/ total sentences) + (long words/ total words * 100) (long words = words where number of characters > 6) |
たとえば、以下は、テキストファイルの読みやすさを判断するためのフレッシュインデックスによるプログラムです。
仮定
フレッシュインデックス | テキストファイルの読み取りグレード |
---|---|
0-30 | 大学 |
50-60 | 高校 |
90-100 | 4年生 |
上から、フレッシュキンケードの学年レベルの式を使用して、同等の学年レベルG-
を計算します。FKGL =0.39 *(合計単語/合計文)+ 11.8(合計音節/合計単語)-15.59
コード
import os dire = os.getcwd() listOfdir = os.listdir(dire) while True: UserFileName = input('Enter file name:') if (UserFileName in listOfdir) and (UserFileName.endswith(".txt")): InputFile = open(UserFileName,'r') text = InputFile.read() sentence = text.count('.') + text.count('!') + text.count(';') + text.count(':') + text.count('?') words = len(text.split()) syllable = 0 for word in text.split(): for vowel in ['a','e','i','o','u']: syllable + = word.count(vowel) for ending in ['es','ed','e']: if word.endswith(ending): syllable - = 1 if word.endswith('le'): syllable + = 1 G = round((0.39*words)/sentence+ (11.8*syllable)/words-15.59) if G > = 0 and G < = 30: print ('The Readability level is College') elif G > = 50 and G < = 60: print ('The Readability level is High School') elif G > = 90 and G < = 100: print ('The Readability level is fourth grade') print ('This text has %d words' %(words)) elif UserFileName not in listOfdir: print ('This text file does not exist in current directory') elif not(UserFileName.endswith('.txt')): print ('This is not a text file.')
出力
Enter file name:dataVisualization.txt The Readability level is College This text has 64 words
-
Pythonプロットの外にテキストを配置する方法は?
プロットの外にテキストを配置するには、 text_pos_xの値を変更してテキストの位置を変更できます。 およびtext_pos_y ステップ xとyのデータポイントを作成します。 xとyのテキスト位置を初期化します。 xとyをプロットするには、 color =red でplot()メソッドを使用します 。 text()メソッドを使用して、図にテキストを追加します。 図を表示するには、 show()を使用します メソッド。 例 import numpy as np from matplotlib import pyplot as plt plt.rcParams["figu
-
PythonでNLTKを使用してテキストをトークン化する
文字シーケンスと定義されたドキュメント単位が与えられた場合、トークン化は、トークンと呼ばれる断片に切り刻むタスクであり、おそらく同時に句読点などの特定の文字を破棄します。 nltkとpythonのコンテキストでは、これは単に各トークンをリストに入れるプロセスであり、一度に各文字を繰り返す代わりに、トークンを繰り返すことができます。 たとえば、入力文字列が与えられた場合- Hi man, how have you been? 出力を取得する必要があります- ['Hi', 'man', ',', 'how', 'have&