Stop-sanat
Pyyhkäise näyttääksesi valikon
Stop-sanat ovat yleisiä sanoja, jotka eivät yleensä vaikuta lauseen merkitykseen, ainakaan useimpien analyysien ja algoritmien näkökulmasta. Näihin kuuluvat sanat kuten "the", "is", "in" ja "on".
Stop-sanat suodatetaan tyypillisesti pois tokenisoinnin jälkeen NLP-tehtävissä, kuten sentimenttianalyysissä, aiheiden mallinnuksessa tai avainsanojen poiminnassa. Stop-sanojen poistamisen tarkoituksena on pienentää aineiston kokoa, mikä parantaa laskennallista tehokkuutta, sekä lisätä analyysin osuvuutta keskittymällä sanoihin, joilla on merkittävä sisältö.
Stop-sanojen poistaminen NLTK:lla
Helpottamaan työskentelyä nltk tarjoaa kattavan stop-sanojen listan useilla kielillä, joka on helposti saatavilla ja käytettävissä tekstiaineiston suodattamiseen.
Näin saat englanninkielisten stop-sanojen listan NLTK:sta ja muunnettua sen set-muotoon:
1234567import nltk from nltk.corpus import stopwords # Download the stop words list nltk.download('stopwords') # Load English stop words stop_words = set(stopwords.words('english')) print(stop_words)
Tämän listan muuntaminen set-tyyppiseksi parantaa hakujen tehokkuutta, sillä jäsenyyden tarkistaminen setissä on nopeampaa kuin listassa.
Tämän huomioiden tarkastellaan täydellistä esimerkkiä siitä, miten pysäytyssanat suodatetaan annetusta tekstistä:
1234567891011121314import nltk from nltk.tokenize import word_tokenize from nltk.corpus import stopwords nltk.download('punkt_tab') nltk.download('stopwords') stop_words = set(stopwords.words('english')) text = "This is an example sentence demonstrating the removal of stop words." text = text.lower() # Tokenize the text tokens = word_tokenize(text) # Remove stop words filtered_tokens = [word for word in tokens if word not in stop_words] print("Original Tokens:", tokens) print("Filtered Tokens:", filtered_tokens)
Kuten huomaat, ensin tulee ladata stop-sanat ja suorittaa tokenisointi. Seuraava vaihe on käyttää list comprehension -rakennetta luodaksesi listan, joka sisältää vain ne tokenit, jotka eivät ole stop-sanoja. word.lower() if-ehdossa on olennainen, jotta jokainen sana (tokeni) muunnetaan pieniksi kirjaimiksi, sillä nltk sisältää stop-sanat ainoastaan pienillä kirjaimilla.
Vaihtoehtoisesti voidaan käyttää tavallista for-silmukkaa list comprehension -rakenteen sijaan, mutta list comprehension on tässä tapauksessa tehokkaampi ja tiiviimpi ratkaisu.
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme