打印出多个txt文档中每个段落的首句

Print out first sentence of each paragraph in multiple txt documents

我希望我不会用这个问题打扰任何人,因为它与已经被问到的问题相似。 尽管如此,我的问题是我没有找到 txt 文件的答案,但仅针对 html/xml 与 BeautifulSoup 一起工作。另一个问题给出了 Java 的答案,但我只使用了 Python.

所以我有几个文本文档,我想为每个文档获取每个段落的第一句话。

我想用以下方式打开和阅读文本:

speech1_content = open("1789-04-30-George-Washington.txt", "r")

将是第一步,但我没有找到任何让我走得更远的答案。 思路是在txt文件中有一段:

在生活中的沧桑事件中,没有一件事比您的命令发送的通知更让我焦虑,并于本月 14 日收到。一方面,我是被我的国家召唤的,除了崇敬和爱,我再也听不到它的声音了,我怀着最深切的偏爱选择了一个退隐之地,并且怀着美好的希望,带着一个不变的决定,作为我晚年的避难所——由于习惯增加了倾向,我的健康经常中断,随着时间的推移逐渐浪费,这种撤退对我来说变得越来越必要,也越来越珍贵。

但只有这个作为输出:

在生活的沧桑中,没有一件事比您的命令转达并在本月 14 日收到的通知更让我焦虑。

非常感谢您的帮助。

这为您提供了一个字符串列表,其中存储了每行的第一句话:

speech1_lines = speech1_content.readlines()
speech1_first_sentences = [line.split('.')[0] for line in speech1_lines]

然后您可以打印列表

print(speech1_first_sentences)

或遍历它

for sentence in speech1_first_sentences:
    print(sentence)

所以我想您需要读取文件直到第一个换行符 ('\n')。

在 Python 中,我们更喜欢用以下方式打开文件:

with open(filename) as f:
    lines = f.readlines()

现在,一行到第一个换行符为止。第一段只是行 ([0]) 的第一个元素和第一个 .可以通过对一个字符串调用find函数得到。你的情况:

eos = lines[0].find('.')
first_sentence = lines[0][0:eos]

如果您需要更复杂的句子查找器,您应该看看 NLTK。