【发布时间】:2017-03-06 22:47:46
【问题描述】:
我必须使用 Python 来打印文本文件的每个句子中的单词数和平均单词长度。我不能使用 NLTK 或 Regex 来完成这项作业。
文件中的句子以句点、感叹号或问号结尾。连字符、破折号或撇号不会结束句子。引号不结束句子。而且,有些句号不会结束句子。例如,Mrs.、Mr.、Dr.、Fr.、Jr.、St. 都是常见的缩写。
例如,如果输入文本是:
"My name? Bob. Your name? Lily! Hi there"
...输出应该是:
[(no. of words, mean length of words in sentence1),
(no. of words, mean length of words in sentence2),
...]
代码:
p= ("Mrs.","Mr.","St.")
def punct_after_ab(texts):
new_text = texts
for abb in p:
new_text = new_text.replace(abb,abb[:-1])
return print(new_text)
import numpy
def word_list(text):
special_characters = ["'",","]
clean_text = text
for string in special_characters:
clean_text = clean_text.replace(string, "")
count_list = [len(i) for i in clean_text.split()]
count = [numpy.mean(count_list)]
return print((count_list),(count))
但是当我测试这个时,它并没有拆分句子。
【问题讨论】:
-
我投票结束这个问题,因为 SO 不是免费的编码服务。
-
您似乎希望我们为您编写一些代码。虽然许多用户愿意为陷入困境的编码人员编写代码,但他们通常只有在发布者已经尝试自己解决问题时才会提供帮助。展示这项工作的一个好方法是包含您迄今为止编写的代码、示例输入(如果有的话)、预期输出和您实际获得的输出(输出、回溯等)。您提供的详细信息越多,您可能收到的答案就越多。检查FAQ 和How to Ask。
-
添加了我的代码,但仍在寻找一些指导......
-
@Bala 我根据你的更新更新了我的答案
标签: python tokenize lexical-analysis