Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python/使用Pandas从文本文件读取和分组数据_Python_Regex_Pandas_Text_Nlp - Fatal编程技术网

Python/使用Pandas从文本文件读取和分组数据

Python/使用Pandas从文本文件读取和分组数据,python,regex,pandas,text,nlp,Python,Regex,Pandas,Text,Nlp,我有一个文本文件,如下所示: Sentence:1 Polarity:N 5puan verdim o da anistonun güzel yüzünün hatırına. Sentence:2 Polarity:N son derece sıkıcı bir filim olduğunu söyleyebilirim. Sentence:3 Polarity:N ..saçma bir konuyu nasılda filim yapmışlar maşallah Sentence:4 P

我有一个文本文件,如下所示:

Sentence:1 Polarity:N 5puan verdim o da anistonun güzel yüzünün hatırına.
Sentence:2 Polarity:N son derece sıkıcı bir filim olduğunu söyleyebilirim.
Sentence:3 Polarity:N ..saçma bir konuyu nasılda filim yapmışlar maşallah
Sentence:4 Polarity:P bence hoş vakit geçirmek için seyredilebilir.
Sentence:5 Polarity:P hoş ve sevimli bir film.
Sentence:6 Polarity:O eşcinsellere pek sempati duymamakla beraber bu filmde sanki onları sevimli göstermeye çalışmışlar gibi geldi.
Sentence:7 Polarity:O itici bir film değildi sonuçta.
Sentence:8 Polarity:N seyrederken bu kadar sinirlendiğim film hatırlamıyorum.
Sentence:9 Polarity:O  J.Aniston ın hiç mi umut yok diye sorduğu sahnede kıracaktım televizyonu!
Sentence:10 Polarity:O kimse yazmamış ben yazıyım:)
Sentence:11 Polarity:P  güzel bi pazar günü şirin bi film izlemek isteyenler için çok güzel.
我想将此数据拆分为如下表:

Sentence_No - Sentence_Polarity - Sentence_txt
1 - N - 5puan verdim o da anistonun güzel yüzünün hatırına.
2 - N - son derece sıkıcı bir filim olduğunu söyleyebilirim.
3 - N - ..saçma bir konuyu nasılda filim yapmışlar maşallah
4 - P - bence hoş vakit geçirmek için seyredilebilir.
所以我想我需要从“句子:”、“极性”和最后一个txt部分后面得到这个部分。我希望这样,这样我就可以对数据进行分类

我编写了下面的代码,但它不适用于此目的:

df = pd.read_csv('SU-Movie-Reviews-Sentences.txt', lineterminator='\n', names=['Sentence_No', 'Sentence_Polarity' , 'Sentence_txt'])

我将此作为测试字符串:

test = """Sentence:1 Polarity:N 5puan verdim o da anistonun güzel yüzünün hatırına.
Sentence:2 Polarity:N son derece sıkıcı bir filim olduğunu söyleyebilirim.
Sentence:3 Polarity:N ..saçma bir konuyu nasılda filim yapmışlar maşallah
Sentence:4 Polarity:P bence hoş vakit geçirmek için seyredilebilir."""
使用Python的
re
模块,您可以使用
re.sub
替换所需的内容:

new_string = re.sub(r"Sentence:(\d+) Polarity:(\w)", r"\1 - \2 -", test)
为您提供所需的格式
\1
\2
分别是与组
(\d+)
匹配的数字或与
(\w)
匹配的字母


现在您可以使用新字符串了。

我将其作为测试字符串:

test = """Sentence:1 Polarity:N 5puan verdim o da anistonun güzel yüzünün hatırına.
Sentence:2 Polarity:N son derece sıkıcı bir filim olduğunu söyleyebilirim.
Sentence:3 Polarity:N ..saçma bir konuyu nasılda filim yapmışlar maşallah
Sentence:4 Polarity:P bence hoş vakit geçirmek için seyredilebilir."""
使用Python的
re
模块,您可以使用
re.sub
替换所需的内容:

new_string = re.sub(r"Sentence:(\d+) Polarity:(\w)", r"\1 - \2 -", test)
为您提供所需的格式
\1
\2
分别是与组
(\d+)
匹配的数字或与
(\w)
匹配的字母


现在,您可以使用新字符串。

使用DataFrame的
方法替换为
regex
,并在使用
read\u csv
读取文件时使用
header=None
,因为默认情况下,数据集的第一行将被视为标题,您将无法获取第一行。因此,请使用
fillna(“0”)
,因为您的编号顺序不一致,且为空或Nan:

df=pd.read\u csv(“SU Movie Reviews sequences.txt”,header=None)。fillna(“0”)

以下是如何使用
替换

>>> df.replace('Sentence:|Polarity:', '',regex=True)
                                                    0
0   1 N 5puan verdim o da anistonun güzel yüzünün ...
1   2 N son derece sıkıcı bir filim olduğunu söyle...
2   3 N ..saçma bir konuyu nasılda filim yapmışlar...
3   4 P bence hoş vakit geçirmek için seyredilebilir.
4                        5 P hoş ve sevimli bir film.
5   6 O eşcinsellere pek sempati duymamakla berabe...
6                 7 O itici bir film değildi sonuçta.
7   8 N seyrederken bu kadar sinirlendiğim film ha...
8   9 O  J.Aniston ın hiç mi umut yok diye sorduğu...
9                   10 O kimse yazmamış ben yazıyım:)
10  11 P  güzel bi pazar günü şirin bi film izleme...

使用DataFrame的
方法替换为
regex
,并在使用
read\u csv
读取文件时使用
header=None
,因为默认情况下,数据集的第一行将被视为头行,您将无法获取第一行。因此,请使用
fillna(“0”)
,因为您的编号顺序不一致,且为空或Nan:

df=pd.read\u csv(“SU Movie Reviews sequences.txt”,header=None)。fillna(“0”)

以下是如何使用
替换

>>> df.replace('Sentence:|Polarity:', '',regex=True)
                                                    0
0   1 N 5puan verdim o da anistonun güzel yüzünün ...
1   2 N son derece sıkıcı bir filim olduğunu söyle...
2   3 N ..saçma bir konuyu nasılda filim yapmışlar...
3   4 P bence hoş vakit geçirmek için seyredilebilir.
4                        5 P hoş ve sevimli bir film.
5   6 O eşcinsellere pek sempati duymamakla berabe...
6                 7 O itici bir film değildi sonuçta.
7   8 N seyrederken bu kadar sinirlendiğim film ha...
8   9 O  J.Aniston ın hiç mi umut yok diye sorduğu...
9                   10 O kimse yazmamış ben yazıyım:)
10  11 P  güzel bi pazar günü şirin bi film izleme...

如果句子和极性从未出现在文本中,你可以通过内置函数替换它们。它们从未出现在文本中,但我如何才能做到这一点?如果句子和极性从未出现在文本中,你可以通过内置函数替换它们。它们从未出现在文本中,但我如何才能做到这一点?