文章中の単語を数える方法は?私はPythonを使用しています。文章中の単語数を数えるには?
string = "I am having a very nice [email protected]$ day. "
7つの言葉のようになります。
は例えば、私は、文字列を持っているかもしれません。私は、数字や記号が含まれている場合と同様に、各単語の前後にランダムな量のスペースに問題があります。引数なし
文章中の単語を数える方法は?私はPythonを使用しています。文章中の単語数を数えるには?
string = "I am having a very nice [email protected]$ day. "
7つの言葉のようになります。
は例えば、私は、文字列を持っているかもしれません。私は、数字や記号が含まれている場合と同様に、各単語の前後にランダムな量のスペースに問題があります。引数なし
str.split()
空白文字の実行に分割します。
>>> s = 'I am having a very nice day.'
>>>
>>> len(s.split())
7
リンクドキュメントから:
9月が指定または
None
で、異なる分割アルゴリズムが適用されていない場合:連続した空白の連続は1つの区切り文字とみなされ、文字列の先頭または末尾に空白がある場合は、先頭または末尾に空の文字列は含まれません。
これの1つの(非常にマイナーな)欠点は、単語としてカウントされる句読点グループを持つことができるということです。たとえば、「私はとても素敵な一日を過ごしています。少なくとも、私はいました」と言いますと、あなたは単語として数えられます。 OPの "単語"の定義に応じて、 "isalnum"が役立つかもしれません。 – DSM
これは正規表現より速いと思われます –
あなたはregex.findall()
を使用することができます。
import re
line = " I am having a very nice day."
count = len(re.findall(r'\w+', line))
print (count)
[OK]を、ここでこれを行うための私のバージョンです。私はあなたの出力が7
であることに気付きました。つまり、特殊文字と数字を数えたくありません。そこでここでは、正規表現パターンです:[a-zA-Z_]
は、それが一致することを意味
re.findall("[a-zA-Z_]+", string)
任意の文字a-z
(小文字)とA-Z
(大文字)beetwen。
スペースについて。余分なスペースをすべて削除するには、次のようにします。
string = string.rstrip().lstrip() # Remove all extra spaces at the start and at the end of the string
while " " in string: # While there are 2 spaces beetwen words in our string...
string = string.replace(" ", " ") # ... replace them by one space!
これは正規表現を使用した簡単な単語カウンターです。スクリプトにはループが含まれています。
#word counter using regex
import re
while True:
string =raw_input("Enter the string: ")
count = len(re.findall("[a-zA-Z_]+", string))
if line == "Done": #command to terminate the loop
break
print (count)
print ("Terminated")
def wordCount(mystring):
tempcount = 0
count = 1
try:
for character in mystring:
if character == " ":
tempcount +=1
if tempcount ==1:
count +=1
else:
tempcount +=1
else:
tempcount=0
return count
except Exception:
error = "Not a string"
return error
mystring = "I am having a very nice [email protected]$ day."
print(wordCount(mystring))
出力は数字を収容するために8
出力は11.もう一度チェックしてください。 –
ありがとうございました。 –
である、あなたは正規表現を変更することができます。 '\ w'は' [a-zA-Z0-9] 'にマッチします。次に、ユースケースが何であるかを定義する必要があります。 「私は良いですか?」とはどうなりますか?それは2単語か3単語でしょうか? – karthikr