gpt4 book ai didi

python - 使用 Python 创建一个表格,其中每个段落中的句子都在一行中

转载 作者:行者123 更新时间:2023-12-04 18:07:39 25 4
gpt4 key购买 nike

我有一个摘要,我用 Python 将其拆分为句子。我想写入 2 个表。其中有以下列:abstract id(这是我从文档中提取的文件编号),sentence id(自动生成)和这个摘要的每个句子一排。我想要一张看起来像这样的 table

abstractID  SentenceID   Sentence

a9001755 0000001 Myxococcus xanthus development is regulated by(1st sentence)

a9001755 0000002 The C signal appears to be the polypeptide product (2nd sentence)

和另一个表 NSFClassesabstractIDnsfOrg。如何将句子(每行一个)写到表中并如上所示分配sentenceId

这是我的代码:

import glob;
import re;
import json
org = "NSF Org";
fileNo = "File";
AbstractString = "Abstract";
abstractFlag = False;
abstractContent = []
path = 'awardsFile/awd_1990_00/*.txt';
files = glob.glob(path);
for name in files:
fileA = open(name,'r');
for line in fileA:
if line.find(fileNo)!= -1:
file = line[14:]
if line.find(org) != -1:
nsfOrg = line[14:].split()
print file
print nsfOrg
fileA = open(name,'r')
content = fileA.read().split(':')
abstract = content[len(content)-1]
abstract = abstract.replace('\n','')
abstract = abstract.split();
abstract = ' '.join(abstract)
sentences = abstract.split('.')
print sentences
key = str(len(sentences))
print "Sentences--- "

最佳答案

正如其他人所指出的,很难遵循您的代码。我认为这段代码会根据您的预期输出和我们可以看到的内容来执行您想要的操作。不过,我可能跑题了,因为我们看不到您正在使用的文件。我对你的代码的一部分感到特别困扰,我看不到足够的重构,但感觉显然是错误的。它在下面标记。

import glob

for filename in glob.glob('awardsFile/awd_1990_00/*.txt'):
fh = open(filename, 'r')
abstract = fh.read().split(':')[-1]
fh.seek(0) # reset file pointer
# See comments below
for line in fh:
if line.find('File') != -1:
absID = line[14:]
print absID
if line.find('NSF Org') != -1:
print line[14:].split()
# End see comments
fh.close()
concat_abstract = ''.join(abstract.replace('\n', '').split())
for s_id, sentence in enumerate(concat_abstract.split('.')):
# Adjust numeric width arguments to prettify table
print absID.ljust(15),
print '{:06d}'.format(s_id).ljust(15),
print sentence

在标记的部分中,您正在搜索文件中字符串 'File' 和 'NSF Org' 的最后一次出现(无论您是否有意为之,因为循环将不断覆盖您的变量,只要它们出现),然后对该行的第 15 个字符进行处理。没有看到文件,就不可能说怎么做,但我可以告诉你有更好的方法。它可能涉及搜索整个文件作为一个字符串(或者至少是它的第一部分,如果它在它的标题中)而不是遍历它。

另外,请注意我是如何压缩您的代码的。您将很多东西存储在根本不使用的变量中,并收集了很多分散状态的垃圾。要了解第 N 行的作用,我必须继续向前看第 N+5 行,然后向后看第 N-34 到 N-17 行以检查变量。这会产生很多远距离 Action ,出于上述原因,最好避免这种情况。在较小的版本中,您可以看到我如何在只使用一次的地方替换字符串文字并立即调用打印语句,而不是存储结果以备后用。结果通常更简洁易懂。

关于python - 使用 Python 创建一个表格,其中每个段落中的句子都在一行中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22742979/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com