የፕሮጀክቶች በአጠቃላይ የፕሮጀክቶች እና የፕሮጀክቶች እና የፕሮጀክቶች እና የፕሮጀክቶች አጠቃላይ የፕሮጀክቶች እና የፕሮጀክቶች እና የፕሮጀክቶች አጠቃላይ የፕሮጀክቶች እና የፕሮጀክቶች አጠቃላይ የፕሮጀክቶች እና የፕሮጀክቶች አጠቃላይ የፕሮጀክቶች እና የፕሮጀክቶች እና የፕሮጀክቶች አጠቃላይ የፕሮጀክቶች እና የፕሮጀክቶች አጠቃላይ የፕሮጀክቶች እና የፕሮጀክቶች አጠቃላይ የፕሮጀክቶች እና የፕሮጀክቶች አጠቃላይ የፕሮጀክቶች እና የፕሮጀክቶች አጠቃላይ የፕሮጀክቶች እና የፕሮጀክቶች እና የፕሮ አንድ የቴክኒክ መሐንዲት መሐንዲት መሐንዲት መሐንዲት መሐንዲት መሐንዲት መሐንዲት መሐንዲት መሐንዲት መሐንዲት መሐንዲት መሐንዲት መሐንዲት መሐንዲት መሐንዲት መሐንዲት መሐንዲት መሐንዲት መሐንዲት መሐንዲት መሐንዲት መሐንዲት መሐንዲት መሐንዲት መሐንዲት መሐንዲት መሐንዲት መሐንዲት መሐንዲት መሐንዲት መሐንዲት መሐንዲት መሐንዲት መሐንዲት መሐንዲት መሐንዲት መሐንዲት መሐንዲት መሐ የመጀመሪያው ደረጃ ለሁሉም መግቢያዎች የ URLs ያግኙ ነበር, እንዲሁም ሙሉ ጽሑፍ እና ኦፊሴላዊ ዝርዝር ጋር. The Basic Toolkit: BeautifulSoup For simple HTML pages and Python's urllib are the perfect tools. I started by writing a script (all_house_texas.py) to navigate the Bills Filed pages, find all the links to individual bill histories, and extract basic information like the author and caption. ክፍል 1: የ 20 ኛው ኛ ግዛት ድር ጣቢያ መቁረጥ # From: leg_module_test.py # A simple function to turn a URL into a BeautifulSoup object import urllib.request from bs4 import BeautifulSoup def make_soup(url): thepage = urllib.request.urlopen(url) soupdata = BeautifulSoup(thepage, "lxml") return soupdata website ='https://capitol.texas.gov/BillLookup/History.aspx?LegSess=89R&Bill=SB1' soup = make_soup(website) # Find the author's name by its specific HTML ID for data in soup.findAll('td', id = 'cellAuthors'): print(data.text) ይህ የመጀመሪያው ውሂብ ላይ ጥሩ ተስማሚ ነበር, ነገር ግን በፍጥነት አንድ 벽ን ተስማሚ ነበር. ለ JavaScript ለ Selenium ይህ የ JavaScript onclick ተለዋዋጭ ነው, ይህም አዲስ የ popup መስኮት ለመፍጠር ነበር. BeautifulSoup የ JavaScript መተግበሪያ አይችሉም, ስለዚህ የ link ማየት አይችሉም. ይህ ዘመናዊ የድር መቁረጫ ውስጥ ተመሳሳይ ልምድ ነው. መፍትሔ? በመጠቀም Selenium, የእኔ ስኬት ገጽ መጫወት ይችላሉ, የ JavaScript ለመጫወት የሚፈልጉት, ከዚያም አንድ ሰው እንደ መጫወት የሚፈልጉት እንደ ገጽ ጋር መገናኘት ይችላሉ. Selenium የእኔ ስኬት texas_leg_txt_from_list.py መጨረሻው የተወሰነ URL ለማግኘት ይህን መተግበሪያ ይጠቀማል. # From: texas_leg_txt_from_list.py # Using Selenium to find an element and extract its JavaScript-based URL from selenium import webdriver from selenium.webdriver.common.by import By import time # ... (driver setup code) ... driver.get('https://capitol.texas.gov/BillLookup/Text.aspx?LegSess=75R&Bill=HB1') time.sleep(1.5) # Wait for the page to load # Find the summary link by its ID bill_summary_link = driver.find_element(By.ID, 'lnkBillSumm') # Get the 'onclick' attribute, which contains the JavaScript function call onclick_attribute = bill_summary_link.get_attribute('onclick') # A bit of string manipulation to extract the URL from the JavaScript start_index = onclick_attribute.find("('") + 2 end_index = onclick_attribute.find("'", start_index) bill_summary_url = 'https://capitol.texas.gov/BillLookup/' + onclick_attribute[start_index:end_index] print(f"Successfully extracted summary URL: {bill_summary_url}") driver.quit() ይህን በመጠቀም, እኔ በአብዛኛው ወረቀቶች ላይ የእኔን የሦስት አስፈላጊ ውሂብ አጠቃቀም ይችላሉ: ዋና ገጽ URL, ሙሉ የተመሠረተ ጽሑፍ እና ኦፊሴላዊ ጥቅል ጽሑፍ. Part 2: The Cleanup Crew - የ HTML ኬዮስ ለስላሳ ውሂብ ይፈጥራል የኮምፒውተር የኮምፒውተር የኮምፒውተር የኮምፒውተር የኮምፒውተር የኮምፒውተር የኮምፒውተር የኮምፒውተር የኮምፒውተር የኮምፒውተር የኮምፒውተር የኮምፒውተር የኮምፒውተር የኮምፒውተር የኮምፒውተር የኮምፒውተር የኮምፒውተር የኮምፒውተር የኮምፒውተር የኮምፒውተር የኮምፒውተር የኮምፒውተር የኮምፒውተር የኮምፒውተር የኮምፒውተር የእኔ start_analysis_0.py ስኬት በዚህ አስፈላጊ ደረጃ ላይ የተጠበቀ ነበር. የመጀመሪያው, እኔ regex በመጠቀም አንድ ቀላል መቁረጥ ተግባር መጻፍ ነበር whitespace እና የክፍያ ወረቀት መቁረጥ. # From: start_analysis_0.py # A function to clean raw text scraped from the web import re def clean_text(text): if not isinstance(text, str): return "" # Handle cases where data might not be a string text = re.sub(r'\s+', ' ', text) # Collapse all whitespace into single spaces text = text.replace('\xa0', ' ') # Remove non-breaking spaces text = text.replace('__','') # ... other replacements ... return text.strip() ቀጣይ, እኔ አንድ አስፈላጊ ጥራት ቁጥጥር መቆጣጠሪያ መተግበሪያ መተግበሪያ ነበር. ጥሩ ትዕዛዞች የመጀመሪያው ጽሑፍ ከከፍተኛ መጠን ሊሆን ይችላል, ነገር ግን በጣም ዝቅተኛ አይደለም, ነገር ግን ምንም ፍላጎት ነው. እኔ ብቻ ትዕዛዞች ርዝመት መካከል 10% እና 100% መካከል ያለውን ትዕዛዞች ርዝመት ውስጥ ብቻ ለመጠበቅ ይሆናል. ይህ ከባድ ስዕሎች እና ያልተለመደ መረጃዎችን ማጣቀፍ ነበር. በአብዛኛዎቹ ትዕዛዞች በመተግበሪያ በኋላ, እኔ በዚህ ትዕዛዞች የ histogram አግኝቷል. ይህ ማመልከቻ የእኔ ውሂብ መካከል አብዛኞቹ በጤናማ ልውውውጥ ውስጥ ተመሠረተ ነበር, የእኔን ማጣሪያ ልውውውጥ ትክክለኛነት ማረጋገጥ. የመጨረሻው, የተቀየደው ውሂብ ስብስቦች አንድ JSON ፋይሎች እንደ የተመሠረተ ነበር, ዋና ተፅዕኖ ለ ተስማሚ. ክፍል 3: አንድ T5 ሞዴል Fine-Tuning አሁን ለወደፊቱ ክፍሎች. እኔ ይጠቀማል አንድ ጠንካራ እና ተስማሚ Text-to-Text Transfer Transformer. T5 ትክክለኛውን ሥራዎችን የሚከተሉትን መመሪያዎችን ለማግኘት ጥሩ ነው. የ Text with summarize ጋር ትክክለኛውን ጽሑፍ መፍጠር, እኔ ሊሆን ይችላል የእኔ training pipeline በ start_analysis_1.py እና start_analysis_2.py በ Hugging Face transformers እና TensorFlow libraries በመጠቀም የተመሰረተ ነበር. የ T5 አነስተኛ ሞዴል ሞዴል ያንብቡ ዋናው ሂደት እንደዚህ ይሆናል: Tokenization: ይህ ደረጃ ጽሑፍ ወደ ሞዴል ያካትታሉ የሚችል የኮምፒውተር መለያዎች ይፈጥራል. እኔ የክፍያ ጽሑፍ (የመግቢያ) እና የክፍያ (የአደጋ መለያ) ሁለቱም ይህን ለማስተካከል አንድ pre-processing ተግባር የተፈጠረ ነበር. # From: start_analysis_1.py # This function tokenizes the text and prepares it for the model from transformers import AutoTokenizer tokenizer = AutoTokenizer.from_pretrained('t5-small') prefix = "summarize: " def preprocess_function(examples): # Prepare the input text with the "summarize: " prefix inputs = [prefix + doc for doc in examples["source_text"]] model_inputs = tokenizer(inputs, max_length=512, truncation=True) # Tokenize the target summaries with tokenizer.as_target_tokenizer(): labels = tokenizer(examples["target_text"], max_length=128, truncation=True) model_inputs["labels"] = labels["input_ids"] return model_inputs Data Loading: በ Hugging Face Dataset ትዕዛዞች ውስጥ የ JSON ን መውሰድ እና የ Tokenization መተግበሪያ ነበር. መጨረሻው, እኔ ሞዴል መፍጠር, optimizer መተግበሪያ, እና model.fit() ጋር መተግበሪያ ሂደት ይጀምራል. ይህ ሞዴል የግል መረጃን በመተግበሪያ ነው, ግምገማዎችን ያደርጋል, በይነገጽ ጋር ተመሳሳይ, እና በይነገጽ ውስጣዊ ግምገማዎች ለማሻሻል እና ለማሻሻል. # From: start_analysis_1.py # The final training call in TensorFlow import tensorflow as tf from transformers import TFAutoModelForSeq2SeqLM, AdamWeightDecay # ... (dataset and data_collator setup) ... optimizer = AdamWeightDecay(learning_rate=2e-5, weight_decay_rate=0.01) model = TFAutoModelForSeq2SeqLM.from_pretrained("t5-small") model.compile(optimizer=optimizer) # Let's train! model.fit( x=tf_train_set, validation_data=tf_test_set, epochs=3 ) # Save the fine-tuned model for later use model.save_pretrained("./t5_small_texas_bills") ክፍል 4: የፈተና - ይህ ተስማሚ ነበር? ከሁለት ሰዓቶች በኋላ, እውነታው ደቂቃ መውሰድ ነበር. እኔ ሞዴል ከሁለት ሰዓቶች በፊት አልቻለም አግኝቷል ምን ማምረት ይመልከቱ. እዚህ አንድ ምሳሌ ነው: **Original Bill Text (Snippet): \ "...አንድ መግቢያ, አንድ ትምህርት ቤት መኖሪያ ቤት ላይ አንድ ትምህርት ቤት መኖሪያ ቤት መኖሪያ ቤት ላይ ሊሆን ይችላል የ ad valorem ግምገማዎች አጠቃላይ መጠን ላይ ትክክለኛነት ዝቅተኛ ለማረጋገጥ እና አንድ ትምህርት ቤት መኖሪያ ቤት መኖሪያ ቤት መኖሪያ ቤት መኖሪያ ቤት ላይ ሊሆን ይችላል ማንኛውም ዝቅተኛ ለማረጋገጥ እና አንድ ትምህርት ቤት መኖሪያ ቤት መከላከያ ..." **Original Bill Text (Snippet): \ "...አንድ መግቢያ, አንድ ትምህርት ቤት መኖሪያ ቤት ላይ አንድ ትምህርት ቤት መኖሪያ ቤት መኖሪያ ቤት ላይ ሊሆን ይችላል የ ad valorem ግምገማዎች አጠቃላይ መጠን ላይ ትክክለኛነት ዝቅተኛ ለማረጋገጥ እና አንድ ትምህርት ቤት መኖሪያ ቤት መኖሪያ ቤት መኖሪያ ቤት መኖሪያ ቤት ላይ ሊሆን ይችላል ማንኛውም ዝቅተኛ ለማረጋገጥ እና አንድ ትምህርት ቤት መኖሪያ ቤት መከላከያ ..." "የአውስትራሊያ መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋ "የአውስትራሊያ መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋቢት መጋ **AI-Generated ጥቅል: "የ ፕሮጀክቱ በሽያጭ ወይም በሽያጭ የሽያጭ መኖሪያ ቤት ላይ አንድ ትምህርት ቤት ግዛት ሊተካል ይችላል አጠቃላይ መጠን ላይ ትክክለኛውን መጠን ማቀዝቀዣ ያካትታል. የ ፕሮጀክቱ በተጨማሪም በሽያጭ መኖሪያ ቤት በሽያጭ ውስጥ ማንኛውም ተጽዕኖ ከጠበቀ ይሆናል." **AI-Generated ጥቅል: "የ ፕሮጀክቱ በሽያጭ ወይም በሽያጭ የሽያጭ መኖሪያ ቤት ላይ አንድ ትምህርት ቤት ግዛት ሊተካል ይችላል አጠቃላይ መጠን ላይ ትክክለኛውን መጠን ማቀዝቀዣ ያካትታል. የ ፕሮጀክቱ በተጨማሪም በሽያጭ መኖሪያ ቤት በሽያጭ ውስጥ ማንኛውም ተጽዕኖ ከጠበቀ ይሆናል." ሞዴል (ad valorem taxes, school districts, elderly/handicapped homesteads) እና የኮር መተግበሪያ (የተግበሪያ አነስተኛ ቅርጸት) ትክክለኛውን ቁሳቁሶች (የተግበሪያ ቅርጸት) እና የኮር መተግበሪያን (የተግበሪያ አነስተኛ ቅርጸት) ትክክለኛነት ያካትታል. ነገር ግን በአካባቢው አጠቃቀም አጠቃቀም አጠቃቀም አጠቃቀም ነው. ይህ ሞዴል ዋና ቁሳቁሶች (ad valorem taxes, school districts, elderly / disabled homesteads) እና የኮር መተግበሪያ (የአክሲዮን መስፈርት ለመቀነስ) ትክክለኛነት ያውቃል. የሰው ጥቅል እንደ ተስማሚ አይችልም, ይህ ትክክለኛ ነው እና ሙሉ በሙሉ የፕላስቲክ ንጥረትን ያካትታል. ይህ ተግባራዊ እና ውጤታማ TL;DR ነው. Analysis: መጨረሻው ይህ ፕሮጀክቱ በጣም ውጤታማ AI መተግበሪያዎች በአብዛኛው ጊዜ ከባድ ውሂብ ኢንጂነሪንግ ቅርንጫፍ ላይ የተመሠረተ መሆኑን አስቸጋሪ ይመዝገቡ ነበር. ሞዴል ለመፍጠር የሥራ መጨረሻው 20% ነበር; የመጀመሪያው 80% ውሂብ ለመግዛት እና መቁረጥ ሂደት ነበር. መጨረሻው ሞዴል ተስማሚ አይደለም, ነገር ግን ይህ በጣም ጠንካራ የኮምፒውተር ማረጋገጫ ነው. ይህ ለሁሉም ሰዎች በጣም ተስማሚ ማህበራዊ መረጃ ለመፍጠር የቴክኒክ አየር መሳሪያዎችን ይጠቀማል. What's next? መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ አንድ ቶን ለመፍጠር: የቅርብ ጊዜ የተመሠረተ ፋብሪካዎች ዝርዝሮች ለመፍጠር. ከሌሎች ስቴትስ ወደ ውጭ: ሁሉም የአምላክ ስቴትስ ተመሳሳይ ችግር አለው. ይህ ሙሉ የፓይፕሊን መተግበሪያ ይችላሉ. የእርስዎን መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ ነው.