텍스트 분석을 위해 MySQL 데이터베이스를 사용하는 방법은 무엇입니까?
빅데이터 시대가 도래하면서 텍스트 분석은 매우 중요한 기술이 되었습니다. 널리 사용되는 관계형 데이터베이스인 MySQL은 텍스트 분석에도 사용할 수 있습니다. 이 기사에서는 텍스트 분석을 위해 MySQL 데이터베이스를 사용하는 방법을 소개하고 해당 코드 예제를 제공합니다.
먼저 텍스트 데이터를 저장할 MySQL 데이터베이스와 테이블을 만들어야 합니다. 다음 SQL 문을 사용하여 "analytic"이라는 데이터베이스와 "text_data"라는 테이블을 생성할 수 있습니다.
CREATE DATABASE analysis; USE analysis; CREATE TABLE text_data ( id INT PRIMARY KEY AUTO_INCREMENT, content TEXT );
다음 단계는 분석할 텍스트 데이터를 MySQL 데이터베이스로 가져오는 것입니다. 이는LOAD DATA INFILE
문이나INSERT INTO
문을 사용하여 수행할 수 있습니다.LOAD DATA INFILE
语句或INSERT INTO
语句来实现。
如果文本数据保存在一个CSV文件中,可以使用如下的SQL语句导入数据:
LOAD DATA INFILE 'path/to/text_data.csv' INTO TABLE text_data FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY ' ' IGNORE 1 ROWS;
如果文本数据保存在一个其他类型的文件中,可以使用相应的方法将其读取到内存中,然后使用INSERT INTO
SELECT COUNT(*) FROM text_data;
INSERT INTO
문을 사용하여 테이블에 데이터를 삽입합니다.텍스트 분석
SELECT SUM(LENGTH(content) - LENGTH(REPLACE(content, ' ', '')) + 1) FROM text_data;
SELECT * FROM text_data WHERE content LIKE '%keyword%';
SELECT word, COUNT(*) AS count FROM ( SELECT DISTINCT SUBSTRING_INDEX(SUBSTRING_INDEX(content, ' ', n), ' ', -1) AS word FROM text_data JOIN ( SELECT 1 AS n UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 ) AS numbers ON CHAR_LENGTH(content) - CHAR_LENGTH(REPLACE(content, ' ', '')) >= n - 1 ) AS words GROUP BY word ORDER BY count DESC LIMIT 10;
SELECT CONCAT(word1, ' ', word2) AS phrase, COUNT(*) AS count FROM ( SELECT DISTINCT SUBSTRING_INDEX(SUBSTRING_INDEX(content, ' ', n1), ' ', -1) AS word1, SUBSTRING_INDEX(SUBSTRING_INDEX(content, ' ', n2), ' ', -1) AS word2 FROM text_data JOIN ( SELECT a.n + b.n * 10 AS n1, a.n + b.n * 10 + 1 AS n2 FROM ( SELECT 1 AS n UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9 ) AS a CROSS JOIN ( SELECT 0 AS n UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 ) AS b ) AS numbers ON CHAR_LENGTH(content) - CHAR_LENGTH(REPLACE(content, ' ', '')) >= n2 - 1 ) AS phrases GROUP BY phrase ORDER BY count DESC LIMIT 10;
import matplotlib.pyplot as plt import mysql.connector cnx = mysql.connector.connect(user='your_username', password='your_password', host='localhost', database='analysis') cursor = cnx.cursor() query = ("SELECT word, COUNT(*) AS count FROM (" "SELECT DISTINCT SUBSTRING_INDEX(SUBSTRING_INDEX(content, ' ', n), ' ', -1) AS word " "FROM text_data " "JOIN (" "SELECT 1 AS n UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4" ") AS numbers " "ON CHAR_LENGTH(content) - CHAR_LENGTH(REPLACE(content, ' ', '')) >= n - 1" ") AS words " "GROUP BY word " "ORDER BY count DESC " "LIMIT 10") cursor.execute(query) words = [] counts = [] for (word, count) in cursor: words.append(word) counts.append(count) plt.bar(words, counts) plt.xlabel('Word') plt.ylabel('Count') plt.title('Frequency of Top 10 Words') plt.xticks(rotation=45) plt.show() cursor.close() cnx.close()
결과 표시 및 시각화
마지막으로 MySQL의 결과 집합과 Python의 Matplotlib와 같은 기타 시각화 도구를 사용할 수 있습니다. , Tableau 등)을 사용하여 분석 결과를 표시합니다. 예를 들어 다음 Python 코드를 사용하여 Matplotlib를 사용하여 각 단어의 발생 빈도를 보여주는 히스토그램을 생성할 수 있습니다. rrreee위는 MySQL 데이터베이스를 사용하여 텍스트 분석을 위한 기본 단계 및 샘플 코드입니다. 실제 프로젝트에서 텍스트 분석 작업에 도움이 되기를 바랍니다.위 내용은 텍스트 분석을 위해 MySQL 데이터베이스를 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!