# deal_word
**Repository Path**: matrix_challenger/deal_word
## Basic Information
- **Project Name**: deal_word
- **Description**: 分词脚本
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2018-02-16
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
数据分词
**简介**: 将原始数据清洗后分词,得到新表
安装
----
```
$ pip install -r requirements.txt
```
**ps.** 这里主要安装```jieba```和```pymysql```模块就好
配置
_____
1 在```settings.py``` 配置数据库信息:
```
# 数据库配置信息
db_config = {
'host': '127.0.0.1',
'user': 'root',
'port': 3306,
'password': '123456',
'db': 'inter'
}
# mongodb 数据库配置信息
mongo_db_config = {
'host': '127.0.0.1',
'port': 27017,
'db': "intel"
}
```
2 建表,在model目录中找到table.txt文件,运行sql语句。
3 其他配置在[inter爬虫项目](https://gitee.com/matrix_challenger/inter_game)中
4 分词的停词表在```deal_word```目录下的```filter_words.txt```
文件中,如果需要添加或者删除,自行处理。
5 如果要配置mongo 数据库的表名称,请查看```db_manager.py```:
```
class MongoDB(object):
def __init__(self, mongo_conf, table_set='word'):
self.conn = MongoClient(mongo_conf["host"], mongo_conf["port"])
self.db = self.conn[mongo_conf["db"]]
self.table_set = self.db[table_set]
```
只要创建的时候带入参数```table_set```即可。
运行
----
* **分词功能:** 找到根目录```deal_word```下的```run.py```文件:
```
$ python run.py
```
* **词频统计功能:** 如果是需要统计词频信息,则运行根目录```deal_word```
下的```run_word_freq.py```文件:
```
$ python run_word_freq.py
```
* 词频清洗和统计主要功能都在```filter_words.py```中的```FilterWord```类中
如果需要修改直接查看源代码即可.
* **获取某段时间词频矩阵:**
* 1 在```run_get_arr_between_date.py```中修改时间段,如下:
```
if __name__ == "__main__":
run(from_date='2013-01-31 00:00:00',
to_date='2013-02-03 00:00:00',
date_nums=4,
save_path='./data/',
date_list=get_date_list())
```
其中```from_date```代表日期最一开始的时间,```to_date```代表日期结束时间,
```date_nums```可以不填,但是当只知道结束时间时,可以设置```from_date```为```None```,
此时```date_nums```代表的是间隔是多长,```from_date```会自动设置。
```date_list```代表的是在此时间段中的小时间段列表,可以精确到秒。下面演示求```2013-02-03 00:00:00```
为止,40天前的数据矩阵,如下:
```python
if __name__ == "__main__":
run(to_date='2013-02-03 00:00:00',
date_nums=40,
save_path='./data/',
date_list=get_date_list())
```
其中```get_date_list```函数暂时是模拟一段时间,后面从股票文档中读取,如下:
```
def get_date_list():
"""
得到时间段列表
:return:
"""
return [
'2013-01-31 01:00:00_2013-01-31 03:00:00',
'2013-01-31 03:00:00_2013-01-31 05:00:00',
'2013-01-31 05:00:00_2013-01-31 10:00:00',
'2013-01-31 10:00:00_2013-01-31 20:00:00',
'2013-01-31 21:00:00_2013-02-01 00:00:00',
'2013-02-01 00:00:00_2013-02-01 10:00:00',
'2013-02-01 10:00:00_2013-02-02 00:00:00'
]
```
**ps.** 结果在```data```目录下会生成两个文件,
一个是```labels.txt```,代表矩阵的列名,另一个是
```arr.txt```代表矩阵的内容。
相关资料
-------
[jieba文档](https://github.com/fxsjy/jieba)
[sql语句基础](http://www.w3school.com.cn/sql/sql_insert.asp)