0

蟒蛇问题!

我想要一些关于在文本文件中拆分句子的帮助。我不想创建一个庞大的 if 循环,但我需要找到一种方法来将文本文件拆分为句子。我必须在没有 .readlines() 的情况下这样做

我想用句号、引号和感叹号来分割句子……但是:

  1. 句点后跟空格后跟小写字母不会拆分句子
  2. 句点后跟一个没有中间空格的数字不会拆分句子
  3. Mr., Mrs., Dr.之类的东西当然不会拆分句子
  4. 字母序列,例如 www.website.com 等)
  5. 最后句号后面是标点符号,例如逗号和更多句号(省略号)

我想将文本文件中的这些拆分句子打印给用户。我将如何进行这个过程?我了解基本的字符串格式和索引,但是添加省略号、姓氏等会让我更难...

**还将使用 tkinter 创建一个打开文件按钮和一个下拉菜单,允许用户从 .txt 文件中每行一个句子的程序输出创建一个新的文本文件。

谢谢!

这是我得到的

import re

punctuation = ['.', '?', '!']
exceptions = ['Mr.', 'Mrs.', 'Ms.', 'Sr.', 'e.g', '...']
lines = []

with open('myData.txt') as myFile:
    lines = re.split(punctuation, myFile)
4

1 回答 1

0

这是我的代码

import re

punctuation = re.compile(r"([^\d+])(\.|!|\?|;|\n|。|!|?|;|…| |!|؟|؛)+")
lines = []

with open('myData.txt','r',encoding="utf-8") as myFile:
    lines = punctuation.sub(r"\1\2<pad>", myFile.read())
    lines = [line.strip() for line in lines.split("<pad>") if line.strip()]
于 2020-05-13T04:00:33.693 回答