我有一个很大的中文文本文件,我想将其重新格式化为单独的行,每行以句点结尾
I have a large Chinese text file and I want to reformat it into individual lines, each ending with a period
我想将此文件分成多行(每行以句点(问号、感叹号等)结尾)以便以后更容易处理。
我尝试使用 nltk,但无济于事:
text = r'你在哪里? 我想看到你的狗!我很喜欢你。'
tokenized_text=sent_tokenize(text)
print(tokenized_text)
实际结果:
['你在哪里? 我想看到你的狗!我很喜欢你。']
预期结果:
['你在哪里?
我想看到你的狗!
我很喜欢你。']
看到没有人回应...
import re
text = r'你在哪里? 我想看到你的狗!我很喜欢你。'
text_tokens = re.findall(r'(.*?[?!。])\s?', text) #with all the seperating tokens between []
print("\n".join(text_tokens))
产出
你在哪里?
我想看到你的狗!
我很喜欢你。
解释 .+?
寻找一个到无穷大的字符,直到第一次出现
[?!。]
您要拆分的任何代币
(previous)\s?
删除任何多余的空格(如果存在)。通过仅捕获文本和标记
"\n".join(text_tokens)
将列表加入 newline/formats 每个匹配项作为一个新行。
如果您将它从一个文件读取到另一个文件,那么一个非常简单的程序可能如下所示
import re
text_tokens = []
with open("example.txt", 'r') as text:
text_tokens = re.findall(r'(.+?[?!。])\s?', text.read())
with open("output.txt", 'w+') as out:
out.write("\n".join(text_tokens))
我想将此文件分成多行(每行以句点(问号、感叹号等)结尾)以便以后更容易处理。
我尝试使用 nltk,但无济于事:
text = r'你在哪里? 我想看到你的狗!我很喜欢你。'
tokenized_text=sent_tokenize(text)
print(tokenized_text)
实际结果:
['你在哪里? 我想看到你的狗!我很喜欢你。']
预期结果:
['你在哪里?
我想看到你的狗!
我很喜欢你。']
看到没有人回应...
import re
text = r'你在哪里? 我想看到你的狗!我很喜欢你。'
text_tokens = re.findall(r'(.*?[?!。])\s?', text) #with all the seperating tokens between []
print("\n".join(text_tokens))
产出
你在哪里?
我想看到你的狗!
我很喜欢你。
解释 .+?
寻找一个到无穷大的字符,直到第一次出现
[?!。]
您要拆分的任何代币
(previous)\s?
删除任何多余的空格(如果存在)。通过仅捕获文本和标记
"\n".join(text_tokens)
将列表加入 newline/formats 每个匹配项作为一个新行。
如果您将它从一个文件读取到另一个文件,那么一个非常简单的程序可能如下所示
import re
text_tokens = []
with open("example.txt", 'r') as text:
text_tokens = re.findall(r'(.+?[?!。])\s?', text.read())
with open("output.txt", 'w+') as out:
out.write("\n".join(text_tokens))