Gå til hovedindhold

Brug af AI og Nushell til simpel datarensning og validering

Indsendt af Lennart den

Forestil dig, at du har en side med noget tekst og nogle links, og kun nogle af linkene er RSS-feeds.

Men du vil gerne have disse RSS-feeds til en nyhedslæser af en slags.

Kopiér bare hele siden og giv den til en LLM med de rigtige instruktioner.

I dette tilfælde gør jeg dette med Sigodens’ Aichat og Cerebras’ llama-4 model:

p | aichat --model cer:llama-4-scout-17b-16e-instruct just provide the rss url and feed urls and nothing else provide one url per line

p er bare en kommando, der udskriver det, jeg har kopieret til mit systemudklipsholder.

Her er flere eksempler på lignende tilgange med andre kommandolinje- LLM-værktøjer:

Brug af OpenAI’s GPT med fabric:

p | fabric --pattern extract_rss_feeds

Brug af Ollama med en lokal model:

p | ollama run llama3.2:3b "Extract only RSS feed URLs from this content. Output one URL per line with no other text."

Lad os vende tilbage til det oprindelige eksempel. Måske vil vi have en form for validering af, at de URL'er, der returneres af LLM'en, faktisk er RSS-feeds.

Med Nushell er det let at gøre:

p | aichat --model cer:llama-4-scout-17b-16e-instruct "extract rss urls only" | lines | where $it =~ 'feed|rss|xml'

Nu er denne validering ikke perfekt, og slet ikke en garanti for, at feedsene faktisk er funktionelle. Det ville kræve mere kode at verificere - men det kunne helt sikkert gøres hurtigt i Nushell.

Der er masser af andre ting, som LLM'er let kan finde og præsentere for dig, som ellers ville være tidskrævende, når de er begravet i masser af omkringliggende tekst.

Lad os se på et par flere eksempler:

Udtrækning af e-mailadresser

Antag, at vi har nogle sider med en masse tekst og et par e-mail- adresser spredt rundt omkring:

Vi giver indholdet af disse sider til en LLM:

p | aichat --model cer:llama-4-scout-17b-16e-instruct extract email addresses one per line

Ville outputte noget som:

support@example.com
admin@example.net
team@example.io

Disse resultater er endnu lettere at udføre simpel validering på

p | aichat --model cer:llama-4-scout-17b-16e-instruct extract email addresses one per line | lines | where $it =~ '@'

Udtrækning af navne

LLM'er er meget nyttige til at udtrække data som navne, da de ligesom forstår, hvad navne er.

Antag, at vi har en side med noget tekst og navne:

Our team consists of John Smith, Jane Doe, and Bob Johnson.
You can reach out to John or Jane for more information.

Vi giver dette til en LLM:

p | aichat --model cer:llama-4-scout-17b-16e-instruct extract names one per line

Output:

John Smith
Jane Doe
Bob Johnson
John
Jane

Et sidste eksempel, som alle, der ønsker at arbejde med et stort tekstkorpus, kan finde nyttigt, er fjernelse af stopord.

Fjernelse af stopord

Antag, at vi har en side med noget tekst, og vi vil fjerne almindelige stopord som "the", "and" osv.:

This is an example sentence with common words like the and a.

Vi giver dette til en LLM:

p | aichat --model cer:llama-4-scout-17b-16e-instruct remove stopwords

Output:

example sentence common words like

Der er helt sikkert mere effektive måder at løse disse problemer på, ikke mindst eksemplet med stopord.

Men LLM'er gør det nemt for alle at rense data og udtrække ønsket information, fordi prompterne kan gives på et naturligt, hverdagssprog.

Og Nushell gør det nemt at validere disse udtræk data og fortsætte med at arbejde med dem direkte fra kommandolinjen.