jer*_*144 54 python text counter list python-textprocessing
我如何计算句子中的单词?我正在使用Python.
例如,我可能有字符串:
string = "I am having a very nice 23!@$ day. "
Run Code Online (Sandbox Code Playgroud)
这将是7个字.我在每个单词之后/之前以及涉及数字或符号时随机数量的空格都遇到了问题.
ars*_*jii 81
str.split() 没有任何参数拆分空格字符的运行:
>>> s = 'I am having a very nice day.'
>>>
>>> len(s.split())
7
Run Code Online (Sandbox Code Playgroud)
从链接的文档:
如果未指定sep或者是
None,则应用不同的拆分算法:连续空格的运行被视为单个分隔符,如果字符串具有前导或尾随空格,则结果将在开头或结尾处不包含空字符串.
kar*_*ikr 48
你可以使用regex.findall():
import re
line = " I am having a very nice day."
count = len(re.findall(r'\w+', line))
print (count)
Run Code Online (Sandbox Code Playgroud)
小智 7
s = "I am having a very nice 23!@$ day. "
sum([i.strip(string.punctuation).isalpha() for i in s.split()])
Run Code Online (Sandbox Code Playgroud)
上面的语句将遍历每个文本块并在验证块是否真的是字母串之前删除标点符号。
小智 5
这是一个使用正则表达式的简单单词计数器。该脚本包含一个循环,您可以在完成后终止它。
#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")
Run Code Online (Sandbox Code Playgroud)
小智 5
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 23!@$ day."
print(wordCount(mystring))
Run Code Online (Sandbox Code Playgroud)
输出为 8