gpt4 book ai didi

python-3.x - Python 字典特征提取

转载 作者:行者123 更新时间:2023-11-30 09:51:14 26 4
gpt4 key购买 nike

我正在做一个文本分类实验。对于特征提取阶段,我尝试为每个文档创建一个特征字典。现在,我有两个特征,类型标记比率和功能词相对频率的 n 元语法。当我打印实例时,字典中只有特征类型标记比率。这似乎是因为 get_pos() 功能不佳。它返回空列表。这是我的代码:

instances = []
labels = []
directory = "\\Users\OneDrive\Data"
for dname, dirs, files in os.walk(directory):
for fname in files:
fpath = os.path.join(dname, fname)
with open(fpath,'r') as f:
text = csv.reader(f, delimiter='\t')
vector = {}

#TTR
lemmas = get_lemmas(text)
unique_lem = set(lemmas)
TTR = str(len(unique_lem) / len(lemmas))
name = fname[:5]
vector['TTR'+ '+' + name] = TTR


#function word ngrams
pos = get_pos(text)
fw = []
regex = re.compile(
r'(LID)|(VNW)|(ADJ)|(TW)|(VZ)|(VG)|(BW)')
for tag in pos:
if regex.search(tag):
fw.append(tag)
for n in [1,2,3]:
grams = ngrams(fw, n)
fdist = FreqDist(grams)
total = sum(c for g,c in fdist.items())
for gram, count in fdist.items():
vector['fw'+str(n)+'+'+' '+ name.join(gram)] = count/total

instances.append(vector)
labels.append(fname[:1])
print(instances)

这是荷兰语输入文件的示例:Example of Dutch input

这是 get_pos 函数的代码,我从另一个脚本调用它:

   def get_pos(text):
row4=[]
pos = []
for row in text:
if not row:
continue
else:
row4.append(row[4])
pos = [x.split('(')[0] for x in row4] # remove what's between the brackets
return pos

你能帮我找出 get_pos 函数出了什么问题吗?

最佳答案

当您调用 get_lemmas(text) 时,文件的所有内容都会被消耗,因此 get_pos(text) 没有任何内容可供迭代超过。如果您想多次浏览文件的内容,则需要在调用之间使用 f.seek(0) ,或者在开头将行读入 list并在需要时迭代列表

关于python-3.x - Python 字典特征提取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44861602/

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