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

Chuyển đổi văn bản thành số python
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

Chuyển đổi văn bản thành số python
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

Chuyển đổi văn bản thành số python
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']=TicketData['Priority']

DataForML. đầu()

Đầu ra mẫu

Chuyển đổi văn bản thành số python
Dữ liệu được vector hóa cho Machine Learning

Ở đây, biến Mục tiêu là “Mức độ ưu tiên” và các cột khác là yếu tố dự báo

  • chi tiết tác giả

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

chi tiết tác giả

Farukh Hashmi

Nhà khoa học dữ liệu chính

Farukh là một nhà đổi mới trong việc giải quyết các vấn đề của ngành bằng Trí tuệ nhân tạo. Chuyên môn của ông được hỗ trợ bởi 10 năm kinh nghiệm trong ngành. Là một nhà khoa học dữ liệu cấp cao, anh ấy chịu trách nhiệm thiết kế giải pháp AI/ML để mang lại lợi ích tối đa cho khách hàng. Là một nhà lãnh đạo có tư duy, trọng tâm của ông là giải quyết các vấn đề kinh doanh chính của Ngành CPG. Ông đã làm việc trên nhiều lĩnh vực khác nhau như Viễn thông, Bảo hiểm và Hậu cần. Ông đã làm việc với các nhà lãnh đạo công nghệ toàn cầu bao gồm Infosys, IBM và các hệ thống liên tục. Niềm đam mê giảng dạy của anh ấy đã thôi thúc anh ấy tạo ra trang web này

Làm cách nào để chuyển đổi chuỗi thành số trong gấu trúc?

to_numeric() Ngoài ra, bạn có thể chuyển đổi tất cả các cột chuỗi thành kiểu số nguyên trong gấu trúc bằng cách sử dụng to_numeric(). Ví dụ: sử dụng df['Fee'] = pd. Hàm to_numeric(df['Fee']) để chuyển cột 'Phí' thành int.

Làm cách nào để chuyển đổi một chuỗi thành int?

Chuỗi Java thành số nguyên – Cách chuyển đổi chuỗi thành số nguyên .
Sử dụng số nguyên. parseInt() để chuyển đổi chuỗi thành số nguyên. Phương thức này trả về chuỗi dưới dạng kiểu nguyên thủy int. .
Sử dụng số nguyên. valueOf() để chuyển đổi chuỗi thành số nguyên. Phương thức này trả về chuỗi dưới dạng một đối tượng số nguyên