Python |指定された文字列から単語を抽出します

| | | | | | | | | | | | | | | | | | |

方法1: split()を使用する
split関数を使用すると、文字列を単語のリストに分割できます。これが最も一般的です。誰かがこの特定のタスクを完了したい場合に推奨される方法。ただし、欠点は、文字列に句読点が含まれている場合は機能しないことです。


#Python3デモコード < br> #文字列から単語を抽出
#split()を使用


#初期化文字列

test_string = "Geeksforgeeksは最高のコンピュータサイエンスポータルです"


#元の行を印刷します

print "元の文字列は次のとおりです:" + test_string)


#split()を使用
#文字列から単語を抽出

r es = test_string.split()


#結果を出力

印刷 "単語のリストは次のとおりです:" + str (res) )

終了:

元の文字列は次のとおりです。Geeksforgeeksは最高のコンピュータサイエンスポータルです
単語のリストは次のとおりです。[`Geeksforgeeks`、`is`、`best`、`Computer`、`Science`、`Portal`]

方法#2:使用 regex(findall())
上記のように、すべての特殊文字と句読点が含まれている場合、tr分割を使用して文字列内の単語を検索する従来の方法は、失敗する可能性があります。したがって、このタスクを実行するには正規の式が必要です。 findall 関数は、文字列をフィルタリングして単語を抽出した後、句読点を無視してリストを返します。


#Python3デモcode
#文字列から単語を抽出します
#通常の式を使用します(findall()) < / p>

import re


#文字列の初期化

test_string = "Geeksforgeeks 、最高です@#コンピュータサイエンスポータル。!!!」


#元の行を印刷

print "元の文字列は次のとおりです:" + test_string)


#通常の式を使用(findall())
#文字列から単語を抽出

res = re.findall(r `w +` 、test_string)


#結果を出力

print "単語のリストは次のとおりです:" + str (res))

出力:

元の文字列は次のとおりです:Geeksforgeeks、最適です@#コンピュータサイエンスポータル。 !!!
単語のリストは次のとおりです:[`Geeksforgeeks`、`is`、`best`、`Computer`、`Science`、`Portal`]

メソッド#3:regex()+string.punctuationを使用する
このメソッドも通常の式を使用しましたが、get all punctuation string関数を使用して、すべての句読点を無視し、フィルター処理された結果文字列を取得します。


#Python3デモコード
#文字列から単語を抽出 < br> #regex()+ string.punctuation

import re

import string


#文字列の初期化

test_string = "Geeksforgeeks、最高です@#ComputerSciencePortal。!!!"


#元の文字列を印刷

print 元の文字列は次のとおりです:" + test_string)


#regex()+ string.punctuation
を使用#文字列から単語を抽出する

res = re.sub( `[` + string.punctuation + `]` 、``、test_string ).split()


#結果を出力

印刷 "単語のリストは次のとおりです: " + str ( res))

終了:

元の文字列は次のとおりです。Geeksforgeeks、最高です@#ComputerSciencePortal。 !!!
単語のリストは次のとおりです:[`Geeksforgeeks`、`is`、`best`、`Computer`、`Science`、`Portal`]