文章目录

  • 写作模板问题
    • 从网上下载了一个牛逼哄哄的模板,用 Winedit 打开时,却跳出错误弹出。我顿时懵逼了!!!
    • 编译模板时,跳出 Improper alphabetic constant 错误
    • 编译时,跳出!Extra \else
    • 使用 \begin{align} 爆出未定义
    • 使用 \begin{align} 出现 paragraph ended before \align was complete
    • Excel使用宏
    • 标签出现乱码
  • 词袋模型实现
    • CountVectorizer
    • HanLP
    • Gensim
    • 自己写一个
    • 结合Gensim与sklearn
  • 编程中的难题
    • 如何拼接一个 np.array 呢?
    • 如何按条件删除 np.array的某些列呢?
    • 如何根据索引修改特定位置的 np.array元素呢?
    • 如何按列和某种方法修改dataframe呢?
    • 从np.array的重复数据和重复次数中,组合成一个字典,数据为Key,次数为Value
    • 使用数列,按条件修改dataframe的某一列,两个列必须等长度
    • dataframe 根据某一列排序
    • df 的遍历
    • 时间戳
  • 论文写作
    • 脚注
    • 页眉页脚
    • 题注字体与位置
    • 弄个附件

写作模板问题

从网上下载了一个牛逼哄哄的模板,用 Winedit 打开时,却跳出错误弹出。我顿时懵逼了!!!

解决办法:

  • 点击 WinEdt 菜单栏 Options, 选择 Preferences

  • 在打开的界面中, 选择 Unicode, 复选 (若没选) Enable UTF-8 Format for Modes, 并且在下方紧挨着的方框中加入 TeX; (要有分号, 还必须是 英文模式的 (也就是 半角的)), 保存即可.

    第二种方法是使用记事本打开,在保存为相同名字的文件,顶替掉他。注意,需要选择编码方式为UTF-8

编译模板时,跳出 Improper alphabetic constant 错误

在 \documentclass{ctexbook}中少写了一个[UTF8]

编译时,跳出!Extra \else

实际上是因为在 \cite 进行应用时,{} 内出现中文。所以,必须修改 bib 文件,将相应的引用标签改为英文。

使用 \begin{align} 爆出未定义

\usepackage{amsmath}

使用 \begin{align} 出现 paragraph ended before \align was complete

一般是公式错误,我的是花括号和圆括号匹配了。还有就是普通花括号没有转义

Excel使用宏


在加载项中即可用

标签出现乱码

哎~~我使用的是:\documentclass[UTF8,11pt]{ctexart} 用了很多方法,比如 \begin{CJK*}{GBK}{}什么的,都不管用。要么出现错误,要么还是乱码。
最后查了一下,用Xlate引擎来编码就行了,pdf照样输出。

词袋模型实现

在网上翻了一遍,中文 BOW 模型的实现资料是在太少了。一种方法使用:

CountVectorizer

from sklearn.feature_extraction.text import CountVectorizer
但发现中文根本不能用!!

HanLP

求助与 hanlp,可是我用的 python,而且根本不懂怎么和 Java 交互。虽然何晗的书上有讲,但我死活用不动!!

Gensim

于是找到了:from gensim import corpora
下载了 gensim,原本以为能解决了,可是他的输出却是这样的:
[(0, 2), , (3, 1), (4, 1), (5, 2), (7, 1), (8, 1)]
[(0, 1), (1, 1), (2, 1), (4, 1), (5, 2), (6, 1), (8, 1)]
换句话说,它只保留了非 0 元素。虽然这是解决稀疏矩阵的好方法,但是 Out of Control 了呀1!!!!!!

自己写一个

于是只好自己写一个了!
分词部分就不想讲了,反正分词之后得到一个包含列表的列表。子列表的每一个元素是一个词组。
之后,对包含列表的列表 texts,可以:

all_list = []
for text in texts:all_list += text
corpus = set(all_list)
print(corpus)corpus_dict = dict(zip(corpus, range(len(corpus))))
print(corpus_dict)def vector_rep(text, corpus_dict):vec = []for key in corpus_dict.keys():if key in text:vec.append(text.count(key))else:vec.append(0)# vec = sorted(vec, key= lambda x: x[0])return veccorpus = []
for text in texts:vec = vector_rep(text, corpus_dict)corpus.append(vec)

然而问题来了,由于矩阵太大了,而过程中没有压缩,查看了这个算法,大概需要 40GB 的内存。因此,我在运行的时候,跑了很久,系统跳出内存不足,于是自动释放了程序…再次失败

结合Gensim与sklearn

由于Gensim 储存的是一个伪压缩过的稀疏矩阵。而接下来的处理中,我用到的必须是 np.array。于是,可否考虑将 gensim 处理过的结果先转换为字典,在用 sklearn 的** DictVectorizer** 转换为 np.array 的压缩稀疏矩阵呢?这样,就不用用到 40 GB的内存了。只需要几十兆就可以咯~ 代码如下:

from gensim import corpora
dictionary = corpora.Dictionary(X)
joblib.dump(dictionary,r'D:\桌面\比赛\C题全部数据\map.pkl')    #保存corpus = [dictionary.doc2bow(text) for text in X]corpus_arr = []
for n in corpus:n = np.array(n)corpus_arr.append(n)
corpus  = np.array(corpus_arr)data = []
for i in corpus:data.append(dict(i))from sklearn.feature_extraction import DictVectorizer
vec = DictVectorizer(sparse=True,dtype=np.uint8)
data_new = vec.fit_transform(data)

于是终于解决,得到一个压缩的稀疏矩阵 data_new 了

编程中的难题

如何拼接一个 np.array 呢?

使用 np.vstack (列拼接)或 np.hstack(行拼接)。函数可以接受的参数为一个列表 或 数组。列表中包含所需要拼接的矩阵即可。

如何按条件删除 np.array的某些列呢?

使用 np.argwhere 和 np.delete(axis=1)
比如

index = np.argwhere(test>condition)   #test为源 np.array
np.delete(index,axis=1)   #删除行用 axis=0

如何根据索引修改特定位置的 np.array元素呢?

假如有 index 索引数组,测试数组为 test
则可以直接test[index] = xx即可。
如果是对矩阵进行修改,可以用:test[i][index]=xx

如何按列和某种方法修改dataframe呢?

我想要将dataframe某一列(都是字符串)剔除掉 空格、制表符和换行符。已知剔除方法为:
''.join(x.split())其中 x 为该列某一行,但是我不想用 for 循环遍历,怎么办呢?可以用:

f = lambda x: ''.join(x.split())
X['留言详情'] = X['留言详情'].apply(f)

从np.array的重复数据和重复次数中,组合成一个字典,数据为Key,次数为Value

可以用

unique,cnts = np.unique(xx,return_count=True)
dict_new = dict(zip(unique,cnts)

使用数列,按条件修改dataframe的某一列,两个列必须等长度

df.loc[df['条件列']==condition,'所需列'] = 目标列

dataframe 根据某一列排序

排序后,使用 index 遍历 dataframe 遍历的是已经排序好的 dataframe:

df.sort_value(by=‘列名’,ascending=False)

df 的遍历

可以用

for i in df.index:df.at[i,j]

来遍历 df 的索引。

for i in df.itertuples():

遍历 df 的行。

时间戳

一个好用的包:import datetime as dt
可以将字符串转换为时间戳:

try:dataset_raw.at[i,'留言时间']=dt.datetime.strptime(dataset_raw.at[i,'留言时间'],"%Y/%m/%d %H:%M:%S")
except:pass
两个时间戳可以相减,并取其天数:
(t1-t2).days   #即可!!!

论文写作

脚注

我使用 latex 写的。在参赛过程中,我学到了:
脚注的使用方法:Fisher’C\footnote{宇宙工业大学,自动控制系自动化专业,可可可}
此时,Fisher‘C 会在文档中生成一个脚注。内容是 宇宙工业大学,自动控制系自动化专业,可可可

页眉页脚

页脚页眉可用\usepackage{fancyhdr} %页眉页脚设置来设置。
然后\pagestyle{fancy}即可。
不过我用的是\pagestyle{plain},这个比较好。
当然,如果使用 fancy,则会添加一条小横线,并且在左边弄个小标题(标题从文中来)。当然,也可以通过如下代码设置不可见和其他格式

\pagestyle{fancy}
\lhead{}
\chead{}
\rhead{}
\lfoot{From: K. Grant}
\cfoot{To: Dean A. Smith}
\rfoot{\thepage}
\renewcommand{\headrulewidth}{0.4pt}
\renewcommand{\footrulewidth}{0.4pt}

题注字体与位置

写的时候,题注贴脸了。并且题注的字体大小与正文差不多,所以必须改,怎么改?

\usepackage[margin=0pt,skip=0pt,font=small,labelfont=bf,
labelsep=period]{caption}  %设置caption字体字号。

弄个附件

\begin{appendix}
{\centering\section{Appendix}}
\subsection{hhh}\end{appendix}

第8届泰迪杯C题问题总结相关推荐

  1. 智能阅读模型的构建(第六届泰迪杯C题)

    项目描述: 构建智能阅读模型主要通过两个方法来实现,第一个是TF-IDF的变种--TFC-ICF,TFC-ICF较于TF-IDF是将一个问题的所有答案看成一个整体,类比于TF-IDF文本分类的文件夹, ...

  2. 第九届泰迪杯A题(1)

    分析:统计出造假和非造假的个数并作图 正负样本可视化 import pandas as pd import matplotlib.pyplot as plt import numpy as np# 查 ...

  3. 第七届泰迪杯挑战赛C题

    第七届"泰迪杯"数据挖掘挑战赛C题赛题和数据 网盘链接: https://pan.baidu.com/s/1VRIHBLqaTsfOMLnVmibo5A 提取码:L6X6

  4. 【第十届“泰迪杯”数据挖掘挑战赛】B题:电力系统负荷预测分析 31页省一等奖论文及代码

    相关链接 (1)[第十届"泰迪杯"数据挖掘挑战赛]B题:电力系统负荷预测分析 问题一Baseline方案 (2)[第十届"泰迪杯"数据挖掘挑战赛]B题:电力系统 ...

  5. 【第十届“泰迪杯”数据挖掘挑战赛】B题:电力系统负荷预测分析 问题二 时间突变分析 Python实现

    目录 相关链接 完整代码下载链接 1 定义绘图函数 2 通过对原始测量应用阈值来查找异常值 3 手动设置阈值 4 使用分位数设置阈值 5 3Sigma原则(IQR) 6 设定分位数 6.1 导入数据 ...

  6. 2020年泰迪杯C题智慧政务中的文本数据挖掘应用--论文+全部源码分享

    5.2问题二模型的建立与求解 本题要求针对热点问题进行挖掘,主要目的是从群众留言中挖掘出热点问题.也就是给每一条留言都量化一个热度指数.并且根据热度指数进行排序,从而获取热度较高的评价问题.对于问题热 ...

  7. 分享篇:第十届“泰迪杯”数据挖掘挑战赛-农田害虫图像识别(特等奖)

    第十届"泰迪杯" 数据挖掘挑战赛优秀作品-农田害虫图像识别--特等奖 实验结果分析 4.1.1 实验配置 本篇论文的实验都是基于 Ubuntu 系统下进行,使用 GPU 和 CPU ...

  8. 【第十一届泰迪杯B题产品订单的数据分析与需求预测产品订单的数据分析与需求预测 】第二大问代码分享+解题思路(EDA数据再探索+LightGBM模型)

    [第十一届泰迪杯B题产品订单的数据分析与需求预测]第二大问代码分享+解题思路(EDA数据再探索+LightGBM模型) 写在前面: ​ 拖了这么长时间,一方面是我在找实习面试准备.另一方面是在做第二问 ...

  9. 第十届“泰迪杯”比赛B题解题思路及代码论文

    今年大二,因为对编程感兴趣入坑,算下来自学编程快要一年了,了解了关于计算机的很多方向,暑假偶然间了解到数据分析和挖掘,觉得挺有趣的就想深入学习以下,于是开始学习pandas,然后机器学习,并在天池上做 ...

最新文章

  1. MPB:地大郭东毅等-一种针对重金属污染土壤的高效DNA提取方法
  2. 软工实践第三次作业(结对第一次作业)
  3. CSS 实现图片横向拖动
  4. OpenCV在图像中寻找轮廓的实例(附完整代码)
  5. 2、Redis入门介绍
  6. HDU1215 七夕节(模拟 数学)
  7. vue组件(Vue+webpack项目实战系列之三)
  8. 北京大学计算机语言学,基于认知的汉语计算语言学研究_袁毓林pdf
  9. V-by-one 与lvds
  10. WP-CONTENT/UPLOADS的777,775,744,644,444文件权限设置
  11. mysql脏页处理方法_mysql刷脏页的一次总结
  12. 解决谷歌浏览器Chrome不能播放央视新闻视频的问题
  13. c# 中 event 和 delegate 的区别
  14. Linux系统运维与架构设计之Linux概述
  15. android 音乐播放 启动方式 (3)服务通过发送广播来控制activity显示进度等
  16. 熊猫的python小课_老熊的三分地-Oracle及数据恢复
  17. 艾宾浩斯遗忘曲线PHP,艾宾浩斯遗忘曲线
  18. 本科计算机 出国可以学营养学吗,美国营养学专业哪些大学比较好 十所美国营养...
  19. java登陆界面中关于JDBC的一个问题
  20. 魔漫相机任晓倩:我是这样说服马云投资千万美金的

热门文章

  1. mysql outer apply_CROSS APPLY和 OUTER APPLY 区别详解
  2. 线性代数-MIT 18.06-7(a)
  3. CString查找子字符串
  4. KiCad 5.1.6 泪滴插件安装与使用
  5. 再补充三种内网穿透的方法:ngrok 、ngrok.cc、IOEE
  6. Unity3D编辑器扩展--自定义创建圆锥体
  7. access通过身份证号提取性别_Access计算根据身份证号码字段计算年龄和性别的表达式,最好是还能确定户籍地址,该在什么地方输入?...
  8. 汽车VIN码与二手车市场
  9. 大唐长安人杜环在两河流域, 耶路撒冷和北非的行程
  10. SMBMS超市订单管理系统(一)