1 Star 1 Fork 0

nlp天眼/mathematics_practical_problems

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
fisrt_step.py 2.62 KB
一键复制 编辑 原始数据 按行查看 历史
# 这个赛题很有意思 要我来做我第一步肯定是做一个关系抽取。因为没有标记数据集,所以我想第一步我的实现方案是依靠句法结构来进行关系抽取
import pandas as pd
train = pd.read_csv("data/train.csv").values.tolist()
import jieba
# print(train)
# for train in train:
# train_question_cut = jieba.lcut(train[1])
# print(train_question_cut)
# 分词结果看出来数字是可以被jieba切分出来的
# 看了看题目 无非就是加减乘除方面的问题 所以第一步是判断问题中数字的数量
# 这里的数字包括文字类型的数字 数字 小数点类型的小数 以及/形式的小数
# 我准备把小数全部归一化成 小数点类型的 这样会简单一些 数据集中总共 1807 个 '/'
# s是一个字符串,比如说s='123',或者s='7.89'
def number_choose(s):
try:
return float(s)
except ValueError:
return False
value_count = 0
new_question = []
for train in train:
question = {}
train_question_cut = jieba.lcut(train[1])
print(train_question_cut)
next_integer = "yes"
question["question"] = train[1]
question["answer"] = train[2]
in_number = []
for i in range(1, len(train_question_cut) - 1):
if next_integer == "pass":
next_integer = "yes"
continue
last_word = train_question_cut[i - 1]
local_word = train_question_cut[i]
next_word = train_question_cut[i + 1]
number = number_choose(local_word)
if number:
in_number.append(number)
print(number)
if "%" in local_word:
number = number_choose(local_word.strip("%"))/100
in_number.append(number)
if local_word == "/" or local_word == "﹕" or local_word == ":":
try:
print(last_word, next_word)
print(int(last_word) / int(next_word))
in_number = in_number[:-1]
in_number.append(int(last_word) / int(next_word))
value_count += 1
next_integer = "pass"
except ValueError:
continue
except ZeroDivisionError:
continue
question["number"] = in_number
if question not in new_question:
new_question.append(question)
print("/_value_count", value_count)
# 这一步我找到 1276 个带/的小数 所以下一步就是我们新建一个数据集 数据集里面就不包含带”/“的小数了 这样会带来一些误差
# 导出新的数据集
import json
json.dump(new_question, open("new_question.json", "w", encoding="utf-8"), ensure_ascii=False, indent=3)
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/swner/mathematics_practical_problems.git
git@gitee.com:swner/mathematics_practical_problems.git
swner
mathematics_practical_problems
mathematics_practical_problems
master

搜索帮助

0d507c66 1850385 C8b1a773 1850385