Stop-Sanat
Pyyhkäise näyttääksesi valikon
Stop-sanojen ymmärtäminen
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
Jotta prosessi olisi helpompaa, nltk tarjoaa kattavan stop-sanojen listan useilla kielillä, joita voidaan helposti käyttää tekstidatan stop-sanojen suodattamiseen.
Näin saat englanninkielisten stop-sanojen listan NLTK:sta ja muunnet sen joukoksi:
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 joukoksi parantaa hakujen tehokkuutta, sillä jäsenyyden tarkistaminen joukossa on nopeampaa kuin listassa.
Tämän huomioiden tarkastellaan täydellistä esimerkkiä siitä, kuinka poistaa stop-sanat 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 voisimme käyttää tavallista for-silmukkaa list comprehensionin sijaan, mutta list comprehension on tässä tehokkaampi ja tiiviimpi ratkaisu.
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme