Danh sách các từ trong python

Python là một ngôn ngữ lập trình mạnh mẽ, dễ học. Nó có cấu trúc dữ liệu cấp cao hiệu quả và cách tiếp cận đơn giản nhưng hiệu quả đối với lập trình hướng đối tượng. Cú pháp tao nhã và kiểu gõ động của Python, cùng với bản chất diễn giải của nó, làm cho nó trở thành ngôn ngữ lý tưởng để viết kịch bản và phát triển ứng dụng nhanh chóng trong nhiều lĩnh vực trên hầu hết các nền tảng

Trình thông dịch Python và thư viện chuẩn mở rộng có sẵn miễn phí ở dạng nguồn hoặc nhị phân cho tất cả các nền tảng chính từ trang web Python, https. //www. con trăn. org/, và có thể được phân phối tự do. Trang web tương tự cũng chứa các bản phân phối và con trỏ tới nhiều mô-đun, chương trình và công cụ Python miễn phí của bên thứ ba và tài liệu bổ sung

Trình thông dịch Python dễ dàng mở rộng với các hàm và kiểu dữ liệu mới được triển khai trong C hoặc C++ [hoặc các ngôn ngữ khác có thể gọi được từ C]. Python cũng phù hợp làm ngôn ngữ mở rộng cho các ứng dụng có thể tùy chỉnh

Hướng dẫn này giới thiệu cho người đọc một cách không chính thức các khái niệm và tính năng cơ bản của ngôn ngữ và hệ thống Python. Sẽ rất hữu ích khi có một trình thông dịch Python tiện dụng cho trải nghiệm thực hành, nhưng tất cả các ví dụ đều độc lập, vì vậy hướng dẫn cũng có thể được đọc ngoại tuyến

Vì vậy, tôi đang cố gắng nghiên cứu Python và tôi đã viết mã này để tạo câu từ danh sách các từ ngẫu nhiên và ngẫu nhiên, tôi đã bắt đầu với mã này nhưng tôi không chắc nó có hoạt động không

This is my code

import random

num = random.randrange[0, 9]
drug = ['Advil', 'Synthroid', 'Crestor', 'Nexium', 'Vyvanse', 'Lyrica']
form = ['capsule', 'tablet', 'Powder', 'gel', 'liquid solution', 'Eye drops']

lines = []
for item in drug, form:
    line = '- the patient was prescribed [' + num + '][dosage] [' + item.form + '][form] of [' + item.drug + '] for [' + num + 'days][Duration]
    lines.append[line]

Đây là kết quả tôi mong đợi

[the patient was prescribed [1][Dosage] [capsule][Form] of [Advil][Drug] for [5 days][Duration],
the patient was prescribed [2][Dosage] [Powder][Form] of [Nexium][Drug] for [6 days][Duration],
the patient was prescribed [5][Dosage] [luiquid solution][Form] of [Vyvanse][Drug] for [4 days][Duration],
...]

Ảnh của RawPixel trên unsplash

Hãy nói thật lòng. các tiêu đề tin tức hôm nay là điên. Họ đặc biệt phát điên nếu họ quan tâm đến Donald Trump. Thật điên rồ khi bạn tự hỏi liệu họ có thật không. Là những gì bạn đọc một cái gì đó thực sự xảy ra hoặc chỉ là một bộ sưu tập ngẫu nhiên các từ được tạo thành một tiêu đề tin tức?
Need an example?

Donald Trump 'đã cấm kỳ lân' đến Bắc Triều Tiên

Điên rồi phải không? . Không thành sẽ nghĩ ra điều gì mà trưởng giả lừa bịch

Sean Donald Trump là một con kỳ lân, chơi một con kỳ lân trên cầu vồng, theo Sean Spicer

Ôi chàng trai. với tôi, nghe có vẻ như được tạo ra bởi một trình tạo câu hỏi ngẫu nhiên. Mặc dù thật đáng buồn, tôi đã tự hỏi bao nhiêu [hoặc nếu] các tiêu đề tin tức được tạo ngẫu nhiên có thể trở nên điên cuồng hơn thế. Vì vậy, tôi quyết định xây dựng một kịch bản Python và tự mình xem.
Đối với tôi, có vẻ như nó được tạo bởi một trình tạo câu ngẫu nhiên. Mặc dù đáng buồn là không phải vậy, nhưng tôi tự hỏi có bao nhiêu [hoặc nếu] các tiêu đề tin tức được tạo ngẫu nhiên có thể trở nên điên rồ hơn thế. Vì vậy, tôi quyết định xây dựng một tập lệnh Python và tự mình xem.

Kịch bản bao gồm một máy quét web nhanh để có càng nhiều tiêu đề tin tức càng tốt và sử dụng chúng trong quá trình tạo câu mô hình Markov để tạo tiêu đề tin tức giả mạo thực sự của riêng tôi. Mặc dù kiểu dữ liệu từ điển Python có vẻ phù hợp với ban đầu cho mô hình Markov, tôi muốn sử dụng khung dữ liệu và gấu trúc cho nó. Đơn giản vì tôi muốn thực hiện một số chức năng của gấu trúc và cuối cùng mà tôi không quan tâm đến cách thức thanh lịch nhất của người Viking để làm điều đó trong trường hợp này, nhưng tôi muốn có một kết quả nhanh chóng và tìm kiếm . đang truy cập một trang web tin tức phổ biến bằng cách sử dụng từ khóa 'Donald Trump'. Sau đó tôi đã cách ly văn bản chứa các tiêu đề và viết chúng vào một tệp văn bản. Tôi thấy trang web này cực kỳ hữu ích để thiết lập đoạn mã nhỏ của mình.
Đầu tiên, tôi thiết lập một tập lệnh truy cập vào một trang tin tức phổ biến bằng cách sử dụng từ khóa 'Donald Trump'. Sau đó, tôi tách văn bản chứa các tiêu đề và viết chúng vào một tệp văn bản. Tôi thấy trang web này cực kỳ hữu ích để thiết lập đoạn mã nhỏ của tôi.

https. //trăn thật. com/python-web-scraping-practical-giới thiệu/

Vào bất kỳ ngày nào, điều này sẽ cho tôi khoảng 100 tiêu đề tin tức. Không phải tiền tệ, nhưng tất nhiên làm điều đó một lần cho rất ít từ ngữ để làm việc và chuỗi Markov của tôi đang có nguy cơ rơi vào chuỗi từ duy nhất - và trong trường hợp xấu nhất - chỉ đơn giản là lặp lại và . Rất có thể, thật dễ dàng để thiết lập một bộ lập lịch tác vụ trong Windows sẽ thực thi tệp của tôi mỗi ngày trong nền và để tệp văn bản của tôi phát triển liên tục. Tất cả những gì tôi phải làm bây giờ là kiên nhẫn và chờ đợi cho đến khi một lượng tiêu đề đáng kể được tích lũy. Sau khoảng 1 1/2 tuần tôi có hơn 1000 tiêu đề. Tôi quyết định rằng thế là đủ cho một dự án rất không khoa học và vô nghĩa như vậy. Sau khi tải tệp văn bản của tôi và thực hiện một số công việc dọn dẹp thô trong công việc, loại bỏ một số ký tự đầu ra tin tức định kỳ và dấu câu gấp đôi, v. v. , cuối cùng tôi có thể bắt đầu viết văn bản vào mô hình Markov của mình. Tôi quyết định sử dụng tiền tố hoặc 'chì của một từ'. Tôi không muốn có thông tin chi tiết về chuỗi Markov, nhưng trong thời gian ngắn gọn, tôi sẽ tóm tắt nó như thế này. Đối chiếu với mỗi từ chúng tôi thu thập từng từ sau trong bất kỳ câu nào. Dựa trên tần số của một từ sau so với 'đối thủ của nó, chúng tôi sẽ chỉ định khả năng của một từ theo một từ chính xác nhất. Sau đó, chúng tôi có thể bắt đầu với một từ ngẫu nhiên từ toàn bộ danh sách các từ trong văn bản của chúng tôi và sau đó chọn ngẫu nhiên từ tiếp theo trong câu của chúng tôi với sự xác minh dựa trên khả năng của chúng tôi . Word for Word, chúng tôi sẽ tạo ra một câu chuyện mới dựa trên các thuộc tính của văn bản mà chúng tôi sử dụng để bắt đầu. Tin tức thực sự trong → tin tức giả mạo thực sự.
Đối với mỗi từ, chúng tôi thu thập từng từ sau trong bất kỳ câu nào. Dựa trên tần suất xuất hiện của một từ theo sau so với 'đối thủ' của nó, chúng tôi sẽ chỉ định khả năng xuất hiện của một từ theo sau một từ dẫn đầu nhất định. Sau đó, chúng tôi có thể bắt đầu với một từ ngẫu nhiên từ toàn bộ danh sách các từ trong văn bản của mình và sau đó chọn ngẫu nhiên từ tiếp theo trong câu của chúng tôi với xác suất dựa trên khả năng chúng tôi đã chỉ định. Từng chữ chúng ta sẽ tạo một câu mới dựa trên các thuộc tính của văn bản mà chúng ta đã sử dụng làm đầu vào. Tin thật vào → tin thật giả ra.

Sau khi chia tệp văn bản thành các từ riêng lẻ và lưu trữ chúng trong một biến

[the patient was prescribed [1][Dosage] [capsule][Form] of [Advil][Drug] for [5 days][Duration],
the patient was prescribed [2][Dosage] [Powder][Form] of [Nexium][Drug] for [6 days][Duration],
the patient was prescribed [5][Dosage] [luiquid solution][Form] of [Vyvanse][Drug] for [4 days][Duration],
...]
0, tôi đã xác định cấu trúc khung dữ liệu gấu với ba cột. một cột
[the patient was prescribed [1][Dosage] [capsule][Form] of [Advil][Drug] for [5 days][Duration],
the patient was prescribed [2][Dosage] [Powder][Form] of [Nexium][Drug] for [6 days][Duration],
the patient was prescribed [5][Dosage] [luiquid solution][Form] of [Vyvanse][Drug] for [4 days][Duration],
...]
1 Xác định từ hàng đầu. Đối với mỗi từ hàng đầu, có một từ ‘theo sau và được ghi lại trong cột thứ hai của chúng tôi

[the patient was prescribed [1][Dosage] [capsule][Form] of [Advil][Drug] for [5 days][Duration],
the patient was prescribed [2][Dosage] [Powder][Form] of [Nexium][Drug] for [6 days][Duration],
the patient was prescribed [5][Dosage] [luiquid solution][Form] of [Vyvanse][Drug] for [4 days][Duration],
...]
0. Cột thứ ba -________ 11- sẽ hiển thị số lần chúng ta có thể quan sát sự kết hợp nhất định của một ’chì và một ‘theo dõi trong văn bản của chúng tôi. Chúng ta sẽ hoàn thành đầy đủ những cột này bằng những gì? . Đối chiếu với mỗi từ chỉ có mục I trong văn bản của chúng tôi, từ sau đây là từ chỉ có mục I + 1. Chúng tôi chỉ cần bắt đầu bằng cách điền vào cột 'theo dõi văn bản của chúng tôi một lần nữa, nhưng lần này bắt đầu với từ thứ hai trong văn bản. Đối chiếu với một văn bản ban đầu n hàng, điều này bao gồm đầy đủ các từ N-1 theo dõi. Từ cuối cùng trong văn bản của chúng tôi không tự động có người theo dõi, vì vậy chúng tôi sẽ sử dụng một chuỗi tổng hợp biến để lấp đầy khoảng trống. Tôi gọi nó là ‘Endword, [xin vui lòng không nhầm lẫn nó với một điều âm thanh tương tự mà Tổng hệ thống được cho là đã nói trên một số băng tập tin ẩn].
import pandas as pd
dict_df = pd.DataFrame[columns = [‘lead’, ‘follow’, ‘freq’]]
dict_df['lead']=words
follow = words[1:]
follow.append['EndWord']

Trước khi tôi tiếp tục, tôi sẽ tạo ra một mảng từ riêng biệt bao gồm tất cả các từ cuối cùng của mỗi câu. Trong mã sau của tôi, tôi sẽ sử dụng các từ cuối này để kết thúc câu được tạo ngẫu nhiên của tôi. Điều này có tác dụng phụ tốt đẹp mà tôi không cần phải lo lắng về chuỗi Markov của mình chạy trên các tiêu đề trong suốt, có nghĩa là từ cuối cùng của một tiêu đề không nên được coi là dẫn đầu từ đầu của tiêu đề . Sau tất cả, tôi không xử lý một văn bản liên tục, mà với các câu cá nhân và độc lập. Bằng cách cắt câu của tôi sau khi tạo câu của tôi nhận được một

[the patient was prescribed [1][Dosage] [capsule][Form] of [Advil][Drug] for [5 days][Duration],
the patient was prescribed [2][Dosage] [Powder][Form] of [Nexium][Drug] for [6 days][Duration],
the patient was prescribed [5][Dosage] [luiquid solution][Form] of [Vyvanse][Drug] for [4 days][Duration],
...]
2 như vậy, đây không phải là một mối quan tâm.
end_words = []
for word in words:
if word[-1] in ['.','!','?'] and word != '.':
end_words.append[word]
print[end_words]

Càng xa càng tốt. Bây giờ tôi đếm sự xuất hiện của từng sự kết hợp của từ đó và theo dõi và gán kết quả cho cột tần số bằng group_by và biến đổi

________số 8

Các hàng vẫn không phải là duy nhất, vì vậy tôi xóa các hàng trùng lặp trước khi sử dụng chức năng chức năng trong Python để tạo một ma trận lớn với mỗi từ như chỉ số hàng và mỗi từ theo dõi dưới dạng một cột. Tần số của sự kết hợp của từ theo hàng I và từ sau trong cột J sau đó là phần tử a_ij trong ma trận này

dict_df = dict_df.drop_duplicates[]
pivot_df = dict_df.pivot[index = 'lead', columns= 'follow', values='freq']

Đối với mỗi hàng, sau đó tôi tổng hợp tất cả các tần số và chia từng phần tử theo hàng tôi cho tổng số hàng tôi. Điều này dẫn đến tỷ lệ phần trăm tổng lên đến 1 mà trình tạo câu của tôi sẽ sử dụng phân phối xác thực khi chọn từ người theo dõi cho một từ định giá tốt nhất. Ví dụ. Nếu sau từ ‘giả, chúng tôi quan sát gấp 7 lần từ ‘tin tức và 3 lần từ ‘tan, thì kết quả xác định sẽ được chọn sẽ lần lượt là 0,7 và 0,3

[the patient was prescribed [1][Dosage] [capsule][Form] of [Advil][Drug] for [5 days][Duration],
the patient was prescribed [2][Dosage] [Powder][Form] of [Nexium][Drug] for [6 days][Duration],
the patient was prescribed [5][Dosage] [luiquid solution][Form] of [Vyvanse][Drug] for [4 days][Duration],
...]
0

Với tất cả điều này tại chỗ, tôi có thể xác định chức năng của mình để tạo câu. Tôi lấy một từ bắt đầu để khởi động quá trình tạo câu. This word may be an from Random Random file from all the words. Nhưng vì văn bản của tôi chỉ bao gồm các tiêu đề của Donald Trump, tôi nghĩ rằng sự thật hợp lý khi chắc chắn tên của anh ấy xuất hiện trong tiêu đề tin giả của chúng tôi. Trong các ví dụ của tôi, do đó tôi bắt đầu với 'Donald. Bắt đầu với từ này, trình tạo chọn một từ theo dõi dựa trên cơ sở xác minh chúng tôi thiết lập. Nó sẽ tiếp tục bằng cách sử dụng từ theo dõi được chọn làm từ đầu mới để kết nối từ sau từ vào câu của chúng tôi. Nếu câu tạo câu có một từ nằm trong mảng từ cuối của chúng tôi, câu sẽ lấy từ này là phần cuối cùng và trả lại câu của chúng tôi. Nếu trình tạo đến tổng hợp của chúng tôi ‘Endword, chúng tôi đã xác định trước đó, nó sẽ chỉ rút một từ mới theo dõi cho từ chính đưa chúng tôi xuống con đường cánh cụt này. Điều tương tự cũng được áp dụng nếu chúng tôi nhận được một từ kết thúc và câu của chúng tôi chỉ dài 2 từ [tôi đã có một vài câu ví dụ như chỉ đọc một Donald Donald Trump. Giống như trong Donald Donald Trump

[the patient was prescribed [1][Dosage] [capsule][Form] of [Advil][Drug] for [5 days][Duration],
the patient was prescribed [2][Dosage] [Powder][Form] of [Nexium][Drug] for [6 days][Duration],
the patient was prescribed [5][Dosage] [luiquid solution][Form] of [Vyvanse][Drug] for [4 days][Duration],
...]
1

And that is it

Tôi chắc chắn đã chiến thắng trong một cuộc thi sắc đẹp [Trump đã tổ chức] với mã này, nhưng nó rất nhanh, bẩn, Python-Noob thân thiện và thực hiện công việc. Được cấp, văn bản ngày càng lớn, toàn bộ quá trình xác minh quy trình sẽ chậm hơn, nhưng đối với mẫu của tôi, vẫn chỉ mất vài giây nên tôi không thấy sự cần thiết phải tối ưu hóa thời gian. Thay vào đó, hãy để một số tiêu đề giả mạo thực sự của các tiêu đề giả mạo. Thay vào đó

Donald vấp phải những lời chỉ trích về Trump bị ám ảnh bởi Star Wars Burn. - [Âm thanh hợp lý]
- [Có vẻ hợp lý]

Donald Trump đã phá vỡ bài kiểm tra lòng thành của Donald Trump là có thật. - [Thật tuyệt nếu điều đó xảy ra?]
- [Sẽ tuyệt biết bao nếu điều đó xảy ra?]

Đội Donald Trump, hồ sơ khiếu nại chống lại người da trắng. - [vâng, may là không]
- [Ừ…. có lẽ là không]

Donald Trumps những người giỏi nhất tự hào. - [Tệ nhất của anh ấy]
- [Tệ nhất của anh ấy nữa]

Donald Trumps các trợ lý cảm thấy làm tổng thống của mình vào mùa thu này. - [Tất cả chúng ta đều làm tất cả chúng ta đều làm]
- [Tất cả chúng ta đều làm… tất cả chúng ta đều làm]

Donald Trump, Omarosa và các cá nhân khác, bao gồm cả Tổng thống thứ 45 là Junior Mint. - [Tươi?]
-[Tươi?]

Donald Trump, đến bây giờ bạn đã đi xa. - [Có thể hơi xa so với sở thích của tôi]
-[Có thể hơi xa so với sở thích của tôi]

Tất nhiên đây là một số ví dụ thành công. Rất nhiều câu được đưa ra là vô nghĩa [không phải là covfefe xứng đáng, nhưng vẫn là vô nghĩa]

Donald Trump biết ai là người làm việc của Aretha Franklin cho cựu trợ lý Omarosa Manigault Newman. - [???]
-[???]

Vậy chúng ta đã học được gì thông qua điều này? . Nhưng tôi đã có một vài tiếng cười vui vẻ với mã của mình và phải làm việc với dữ liệu trong một cấu trúc mà tôi thường gặp phải. Nếu bạn có phản hồi hoặc đề xuất, xin vui lòng tiếp cận. Cảm ơn

P. S

Nếu bạn muốn một phiên bản tinh vi hơn của chuỗi Trump Markov, hãy xem trình tạo Tweet tweet ngẫu nhiên này bởi một người thông minh hơn

Chủ Đề