Chuyển đổi văn bản thành số python

Khi có yêu cầu tạo mô hình phân loại dựa trên đầu vào văn bản miễn phí như nhận xét, đánh giá của người dùng, v.v. thì văn bản phải được biểu diễn dưới dạng các cột số. Quá trình này được gọi là vector hóa văn bản. Nói một cách đơn giản, đại diện cho văn bản bằng một tập hợp các cột số

Có hai cách tiếp cận chính để làm điều này

  • Đếm Vector hóa
  • Vector hóa TF-IDF

Đếm Vector hóa

Xem xét dữ liệu bên dưới, trong đó yêu cầu là tạo mô hình dự đoán phân loại phiếu hỗ trợ là P1/P2/P3 dựa trên mô tả phiếu. Vì vậy, trước khi sử dụng thuật toán ML được giám sát, chúng ta cần chuyển đổi văn bản mô tả thành dạng số

1

2

3

4

5

6

7

8

9

10

11

# Tạo dữ liệu vé mẫu

nhập gấu trúc as pd

 

Dữ liệu vé=pd. Khung dữ liệu[dữ liệu=[['Hi Please reset my password, i am not able to reset it','P3'],

                              ['Xin chào, vui lòng đặt lại mật khẩu của tôi','P3'],

                              ['Xin chào Hệ thống không hoạt động, vui lòng khởi động lại', 'P1'],

                              ['Không thể đăng nhập, bạn có thể kiểm tra không?', 'P3'],

                              ['Dữ liệu không được xuất', 'P2'],

                               ], cột=['Text','Priority']]

# In dữ liệu

dữ liệu vé

Đầu ra mẫu

Dữ liệu phân loại vé

Sử dụng vector hóa đếm, văn bản có thể được chuyển đổi thành định dạng số. Kết quả này được gọi là Ma trận thuật ngữ tài liệu. Các cột đại diện cho các từ quan trọng duy nhất trong tất cả các văn bản. Các hàng biểu thị tần suất xuất hiện của từ đó trong mỗi câu

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

# đếm vector hóa văn bản

từ sklearn. feature_extract. văn bản nhập CountVectorizer

từ sklearn. feature_extract. stop_words nhập ENGLISH_STOP_WORDS

 

corpus = Dữ liệu vé['Văn bản'].giá trị

 

#vectorizer = CountVectorizer[stop_words=None]

trình tạo vectơ = Bộ đếm vectơ[stop_words=ENGLISH_STOP_WORDS]

 

 

X = trình véc tơ. fit_transform[corpus]

 

in[trình véc tơ. get_feature_names[]]

 

in[X. hình dạng]

 

# Trực quan hóa ma trận thuật ngữ tài liệu

nhập gấu trúc as pd

Văn bản được vector hóa=pd. Khung dữ liệu[X. mảng[], cột . =vectorizer.get_feature_names[]]

Văn bản được vector hóa['Văn bản gốc']=pd.Sê-ri[tập văn bản]

VectorizedVăn Bản

Đầu ra mẫu

Ma trận thuật ngữ tài liệu trong Python bằng cách sử dụng Số lượng thuật ngữ

Vector hóa TF-IDF

  • TF-IDF là điểm tổng hợp thể hiện sức mạnh của một từ nhất định để xác định duy nhất tài liệu
  • Nó được tính bằng cách nhân Tần số Thuật ngữ [TF] và Tần số Tài liệu Nghịch đảo [IDF] TF. [Số lần một từ xuất hiện trong tài liệu/tổng ​​số từ trong tài liệu đó]IDF. log [tổng số tài liệu/số tài liệu chứa từ đã cho]
  • NẾU một từ rất phổ biến, thì IDF gần bằng 0, nếu không, nó gần bằng 1
  • Giá trị tf-idf của một từ càng cao, từ đó càng độc đáo/hiếm gặp
  • Nếu tf-idf gần bằng 0, điều đó có nghĩa là từ này được sử dụng rất phổ biến

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

# TF-IDF vector hóa văn bản

từ sklearn. feature_extract. văn bản nhập TfidfVectorizer

từ sklearn. feature_extract. stop_words nhập ENGLISH_STOP_WORDS

 

corpus = Dữ liệu vé['Văn bản'].giá trị

 

 

#vectorizer = TfidfVectorizer[stop_words=None]

vectorizer = TfidfVectorizer[stop_words=ENGLISH_STOP_WORDS]

 

X = trình véc tơ. fit_transform[corpus]

 

in[trình véc tơ. get_feature_names[]]

 

# Trực quan hóa Ma trận thuật ngữ tài liệu bằng TF-IDF

nhập gấu trúc as pd

Văn bản được vector hóa=pd. Khung dữ liệu[X. mảng[], cột . =vectorizer.get_feature_names[]]

Văn bản được vector hóa['Văn bản gốc']=pd.Sê-ri[tập văn bản]

VectorizedVăn Bản

Đầu ra mẫu

Ma trận thuật ngữ tài liệu TF-IDF

Làm gì với văn bản được vector hóa?

  • Dữ liệu này có thể được sử dụng thêm trong học máy
  • Nếu dữ liệu văn bản cũng là biến đích e. g. tình cảm [tích cực/tiêu cực] hoặc Ưu tiên vé hỗ trợ [P1/P2/P3] thì các cột từ này đóng vai trò là công cụ dự đoán và chúng tôi có thể điều chỉnh thuật toán ML phân loại

1

2

3

4

5

# Ví dụ Khung dữ liệu cho máy học

# Cột cảm tính đóng vai trò là biến mục tiêu và các cột khác là yếu tố dự đoán

DataForML=pd. Khung dữ liệu[X. mảng[], cột . =vectorizer.get_feature_names[]]

DataForML['Mức độ ưu tiên']=

Chủ Đề