【技能篇】python读取文件、实体抽取
2017-07-28 21:07
357 查看
最近写了一个实体抽取,并且相应的实体填充预处理方案,代码如下(初步实现方案,后期会持续优化代码),完成所有功能会上传至Github上。
import os
import gensim
def main():
word_list = ['平安银行', '000002', '测试', '买入']
#填充实体列表
entity_list = ['entity1', 'entity2']
sorttext(word_list, entity_list)
#根据用户问句分词,并将其作为首元素返回
def sorttext(word_list, entity_list): #wordset表示分词集合,dict表示file2Dict结果
return_list = []
all_dict = filterdict()
for item in word_list:
for key in all_dict:
if key != item:
continue
else:
return_list.append(all_dict[key])
word_list[word_list.index(item)] = entity_list[0]
if all_dict[key] in word_list:
word_list.remove(all_dict[key])
return_list.append(word_list)
print(return_list)
return return_list
for key in all_dict:
if item != all_dict[key]:
continue
else: # 含有证券代码
return_list.append(item)
word_list[word_list.index(item)] = entity_list[0]
if key in word_list:
word_list.remove(key)
return_list.append(word_list)
print(return_list)
return return_list
for item in word_list:
if(item != '大盘'):
continue
else:
if(item == '大盘'):
return_list.append('999999')
word_list[word_list.index(item)] = entity_list[1]
return_list.append(word_list)
print(return_list)
return return_list
else:
return_list.append('000000')
return_list.append(word_list)
print(return_list)
return return_list
return_list.append('000000')
return_list.append(word_list)
print(return_list)
return return_list
# 将’证券名称‘与’号码‘文件转化为字典
def file2dict():
#根据绝对路径读取文件
current_dir = os.path.abspath('.')
file_name = os.path.join(current_dir, 'data.csv')
file = open(file_name, encoding="UTF8")
cache = file.readlines()
file.close()
all_dict = {}
for i in range(len(cache)):
row_list = cache[i].strip('\n').split(',')
dict = {row_list[1]: row_list[0]}
all_dict.update(dict)
del all_dict['证券名称'] # 删除第一行
return all_dict
# 字典过滤(含有字母A和*)
def filterdict():
first_dict = file2dict()
all_dict = {}
for key in first_dict:
second_dict = {key.replace('A', ''): first_dict[key]}
third_dict = {key.replace('*', ''): first_dict[key]}
all_dict.update(second_dict)
all_dict.update(third_dict)
return all_dict
if __name__ == '__main__':
main()
import os
import gensim
def main():
word_list = ['平安银行', '000002', '测试', '买入']
#填充实体列表
entity_list = ['entity1', 'entity2']
sorttext(word_list, entity_list)
#根据用户问句分词,并将其作为首元素返回
def sorttext(word_list, entity_list): #wordset表示分词集合,dict表示file2Dict结果
return_list = []
all_dict = filterdict()
for item in word_list:
for key in all_dict:
if key != item:
continue
else:
return_list.append(all_dict[key])
word_list[word_list.index(item)] = entity_list[0]
if all_dict[key] in word_list:
word_list.remove(all_dict[key])
return_list.append(word_list)
print(return_list)
return return_list
for key in all_dict:
if item != all_dict[key]:
continue
else: # 含有证券代码
return_list.append(item)
word_list[word_list.index(item)] = entity_list[0]
if key in word_list:
word_list.remove(key)
return_list.append(word_list)
print(return_list)
return return_list
for item in word_list:
if(item != '大盘'):
continue
else:
if(item == '大盘'):
return_list.append('999999')
word_list[word_list.index(item)] = entity_list[1]
return_list.append(word_list)
print(return_list)
return return_list
else:
return_list.append('000000')
return_list.append(word_list)
print(return_list)
return return_list
return_list.append('000000')
return_list.append(word_list)
print(return_list)
return return_list
# 将’证券名称‘与’号码‘文件转化为字典
def file2dict():
#根据绝对路径读取文件
current_dir = os.path.abspath('.')
file_name = os.path.join(current_dir, 'data.csv')
file = open(file_name, encoding="UTF8")
cache = file.readlines()
file.close()
all_dict = {}
for i in range(len(cache)):
row_list = cache[i].strip('\n').split(',')
dict = {row_list[1]: row_list[0]}
all_dict.update(dict)
del all_dict['证券名称'] # 删除第一行
return all_dict
# 字典过滤(含有字母A和*)
def filterdict():
first_dict = file2dict()
all_dict = {}
for key in first_dict:
second_dict = {key.replace('A', ''): first_dict[key]}
third_dict = {key.replace('*', ''): first_dict[key]}
all_dict.update(second_dict)
all_dict.update(third_dict)
return all_dict
if __name__ == '__main__':
main()
相关文章推荐
- xlrd---Python中读取excel文件的利器
- python文件操作,读取,修改,合并
- python读取文件
- python 读取文件跳过第一行
- 用python读取大文件
- python 按行读取并判断按行写入文件
- python顺序的读取文件夹下名称有序的文件方法
- Python读取XML配置文件小例子
- python多进程分块读取文件
- CDays-3 习题二 (字典及文件读取练习)及相关内容解析。Python 基础教程
- python读取配置文件
- Python从文件中读取字符串,用正则表达式匹配中文字符的问题
- Python recipe(11):读取ini配置文件
- python-读取txt文件
- Python 读取WAV音频文件 画频谱
- Python 大文件读取
- Python 二进制文件读取显示 (转)
- python_基础学习_01_按行读取文件的最优方法
- Python 读取写入配置文件 —— ConfigParser
- python linecache 模块读取文件