文章目录
kaggle比赛链接:Sentiment Analysis on Movie Reviews
数据集介绍
训练集
- PhraseId: 每条评论的唯一标识符。一条评论可以包含多个句子(Sentence)。
- SentenceId: 句子的唯一标识符。一个句子可以包含多个短语(Phrase)。
- Phrase: 具体的短语文本,表示电影评论的一部分。
- Sentiment:情感标签,表示这条短语的情感分类。情感分类共有五个等级:
0:消极情感(negative)
1:有点消极情感(somewhat negative)
2:中性情感(neutral)
3:有点积极情感(somewhat positive)
4:积极情感(positive)
训练集
- PhraseId: 每条评论的唯一标识符。
- SentenceId: 句子的唯一标识符。
- Phrase: 具体的短语文本,表示电影评论的一部分。
数据集常见格式读入方式
在处理数据科学或机器学习项目时,正确读取各种类型的数据集至关重要。不同的文件格式需要不同的处理方法。以下是一些常见文件类型的数据集读入方式,主要使用Python及其流行的库,如Pandas和NumPy。
1. 文本文件(.txt)
- 使用Python内置方法:
with open('data.txt', 'r') as file: data = file.readlines()
- 使用NumPy:
import numpy as np data = np.loadtxt('data.txt', delimiter=',')
2. CSV文件(.csv)
- 使用Pandas:
import pandas as pd data = pd.read_csv('data.csv') #默认是','分割 data = pd.read_csv('data.csv', sep='数据集中间的分隔符')
3. Excel文件(.xlsx或.xls)
- 使用Pandas:
import pandas as pd data = pd.read_excel('data.xlsx')
4. JSON文件(.json)
- 使用Pandas:
import pandas as pd data = pd.read_json('data.json')
JSON文件的结构一般是字典形式的键值对,这些键值对在DataFrame中会被转换为列名和数据行。
过程
data.json
:
[
{
"name": "Alice", "age": 25, "city": "New York"},
{
"name": "Bob", "age": 30, "city": "San Francisco"},
{
"name": "Charlie", "age": 35, "city": "Los Angeles"}
]
使用Pandas的read_json
方法来读取这个文件:
import pandas as pd
data = pd.read_json('data.json')
print(data)
处理复杂的JSON结构
如果JSON结构比较复杂,需要对数据进行预处理,或者使用json_normalize
来处理嵌套的数据结构:
from pandas import json_normalize
complex_data = [
{
"name": "Alice", "age": 25, "employment": {
"company": "Company A", "title": "Engineer"}},
{
"name": "Bob", "age": 30, "employment": {
"company": "Company B", "title": "Manager"}}
]
df = json_normalize(complex_data)
print(df)
输出:
name age employment.company employment.title
0 Alice 25 Company A Engineer
1 Bob 30 Company B Manager
5. SQL数据库
- 使用Pandas与SQLAlchemy:
from sqlalchemy import create_engine import pandas as pd # 创建数据库引擎 engine = create_engine('sqlite:///database.db') data = pd.read_sql('SELECT * FROM table_name', con=engine