如何将评论文字和评论评分附加到列表中

时间:2019-05-03 00:34:26

标签: python nlp text-mining

我正在编写一个程序,该程序可以分析在线评论并基于评分,将评论分别存储为review_text和相应的评级为{4和5星)或否定({1} ,2和3星)。

尝试使用以下代码添加每个评论的评论文本和评论标签信息,但没有成功。

review_label

我希望将评论存储在列表rev = ['review_text', 'review_label'] for file in restaurant_urls: url_rev= file html_r_r=requests.get(url_rev).text doc_rest=html_r_r soup_restaurant_content= BeautifulSoup(doc_rest, 'html.parser') star_text = soup_restaurant_content.find('img').get('alt') if star_text in ['1-star','2-star','3-star']: rev['review_label'].append('Negative') elif star_text in ['4-star','5-star']: rev['review_label'].append('Positive') else: print('check') rev['review_text'].append(soup_restaurant_content.find('p','text').get_text()) 中,并将评论文本存储在列rev中,并将评论标签(无论是肯定的还是否定的)存储在review_text下。看起来像

review_label

1 个答案:

答案 0 :(得分:0)

我认为您会误解列表的工作原理,因为列表没有列。在您的情况下,rev是一个包含两个项目的列表,您可以向列表中添加新项目(例如,rev.append('review_user')将导致rev看起来像这样:['review_text', 'review_label', 'review_user']) 。但是,您无法将一个项目添加到列表中的一个项目(似乎您正在尝试使用rev['review_label'].append('Negative'))。

在这种情况下,我认为最好的解决方案是有两个单独的列表,一个用于审阅文本,一个用于审阅标签,并相应地附加各个项目:

review_text = []
review_label = []

...

review_text.append(SOMETEXT)
review_label.append(SOMELABEL)

如果您随后希望将数据保存在数据框中,则可以像这样使用熊猫:

import pandas as pd
pd.DataFrame({"review_text": review_text, "review_label": review_label})

这应该给您您想要的。请注意,review_textreview_label的长度必须相同(在您的情况下,它们应该相同)。 我希望这有帮助!如有任何疑问,请发表评论。