Интеллектуальный анализ текста и анализ данных в обзорах мобильных телефонов (Python)

искусственный интеллект

Цель

Для повышения качества обслуживания клиентов, помимо ведения ценовых войн, все важнее понимать потребности клиентов, проводить интеллектуальный анализ данных по текстовым комментариям потребителей и прислушиваться к голосам клиентов.

инструмент

1. Сборщик ракушек

2. Гугл браузер

3. Python3.7 + Пичарм

Сбор данных

① Эта статья сканирует мобильные телефоны платформы Jingdong. Сначала войдите в торговый центр Jingdong и выберите мобильный телефон. В качестве примера мы возьмем Huawei Mate 30 Pro 5G.

②Введите адрес веб-сайта на платформе сбора, нажмите Shell Collection, чтобы начать настройку информации.

③Поскольку он собирает комментарии, необходимо выполнить следующую страницу переключения конфигурации перед операцией: нажмите кнопку предварительной операции --> нажмите кнопку добавления элемента --> щелкните левой кнопкой мыши кнопку добавления элемента на блок-схеме (операция приостановленного отображения ключ) --> щелкните приостановку. Отобразите кнопку операции --> нажмите кнопку переключения на странице TAB обзора веб-продукта --> нажмите "Сохранить".

④Информация комментария не распознана Ручная операция: очистите поле --> измените тип страницы на список ручной идентификации --> выберите два идентичных элемента (здесь два имени пользователя) --> следующая страница не будет автоматически распознана успешно -- > Измените тип пейджинга на ручной и щелкните следующую страницу --> Настройка завершена --> Начать сбор

предварительная обработка данных

После того, как мы получим нужные данные с помощью сканера, мы можем сделать простое наблюдение и найти некоторые характеристики комментариев:

Текст короткий и в основном большое количество комментариев составляют одно предложение.

Эмоциональные тенденции очевидны: очевидны такие слова, как «хорошо», «можно».

Языковые нарушения: будут некоторые сетевые слова, символы, цифры и т. д.

Повторяемость: повторяющиеся слова в предложении Большой объем данных.

Следовательно, нам нужно выполнить предварительную обработку данных по этим данным.

Предварительная обработка данных включает в себя: дедупликацию, сегментацию слов и т. д.

Далее мы выполним очистку данных

import jieba

#Содержимое комментариев дедуплицировано

def quchong(infile, outfile):
infopen = open(infile, 'r', encoding='utf-8')
outopen = open(outfile, 'w', encoding='utf-8')
lines = infopen.readlines()
list_1 = []
for line in lines:
        if line not in list_1:
        list_1.append(line)
        outopen.write(line)
infopen.close()
outopen.close()
quchong("E:/comments/华为P30.txt", "E:/comments/P30去重.txt")

#jieba.load_userdict('userdict.txt')

#Создать список стоп-слов

def stopwordslist(filepath):
    stopwords = [line.strip() for line in open(filepath, 'r', encoding='utf-8').readlines()]
    return stopwords

# Сегментировать содержимое комментария

def seg_sentence(sentence):
     sentence_seged = jieba.cut(sentence.strip())
     stopwords = stopwordslist('stopwords.txt')  # 这里加载停用词的路径
     outstr = ''
     for word in sentence_seged:
     if word not in stopwords:
        if word != '\t':
            outstr += word
            outstr += " "
return outstr

inputs = open('E:/comments/P30去重.txt', 'r', encoding='utf-8')
outputs = open('E:/comments/P30分词.txt', 'w')
for line in inputs:
line_seg = seg_sentence(line)  # 这里的返回值是字符串
outputs.write(line_seg + '\n')
outputs.close()
inputs.close()
print('分词完毕')

анализ данных

Выше мы предварительно обработали просканированный контент с помощью дедупликации и сегментации слов jieba, а затем начали анализировать обработанные данные, включая статистику частотности слов, извлечение ключевых слов, создание облака слов и т. д.

#статистика частотности слов

import jieba.analyse

из коллекций импорт Счетчик # Статистика частотности слов

with open('E:/comments/P30分词.txt', 'r', encoding='utf-8') as fr: 
     data = jieba.cut(fr.read())
data = dict(Counter(data))

with open('E:/comments/P30词频.txt', 'w', encoding='utf-8') as fw:  # 读入存储wordcount的文件路径
     for k, v in data.items():
         fw.write('%s, %d\n' % (k, v))
import jieba.analyse
import matplotlib.pyplot as plt
from wordcloud import WordCloud

#生成词云

 with open('E:/comments/P30词频.txt') as f:
# 提取关键词
data = f.read()
keyword = jieba.analyse.extract_tags(data, topK=50, withWeight=False)
wl = " ".join(keyword)

#设置词云
wc = WordCloud(
    # 设置背景颜色
    background_color = "white",
    # 设置最大显示的词云数
    max_words=2000,
    # 这种字体都在电脑字体中,一般路径
    font_path='C:/Windows/Fonts/simfang.ttf',
    height=1200,
    width=1600,
    # 设置字体最大值
    max_font_size=100,
    # 设置有多少种随机生成状态,即有多少种配色方案
    random_state=30,
)

myword = wc.generate(wl)  # 生成词云
# 展示词云图
plt.imshow(myword)
plt.axis("off")
plt.show()
wc.to_file('E:/comments/P30.png')  # 把词云保存下