Text Chunking and Tokenization with NLTK
This Python snippet demonstrates how to chunk a long text into smaller segments of a specified size using the NLTK library. It also includes a function to tokenize each chunk, making it useful for natural language processing tasks. The example text discusses biopreparaty and their applications.unknown
python
14 days ago
2.3 kB
2
Indexable
import nltk from transformers import GPT2Tokenizer import textwrap nltk.download('punkt') def chunk_text(text, chunk_size=200): """Dzieli tekst na fragmenty o określonej wielkości.""" tokens = nltk.word_tokenize(text) chunks = [] for i in range(0, len(tokens), chunk_size): chunk = ' '.join(tokens[i:i + chunk_size]) chunks.append(chunk) return chunks def tokenize_chunk(chunk): """Tokenizuje fragment tekstu.""" return nltk.word_tokenize(chunk) # Długi tekst (przykładowy) long_text = """ Biopreparaty to preparaty mikrobiologiczne, które zawierają żywe lub martwe mikroorganizmy, lub ich metabolity. Są stosowane w rolnictwie, ogrodnictwie i ochronie środowiska. Ich głównym celem jest poprawa jakości gleby, ochrona roślin przed chorobami i szkodnikami oraz zwiększenie plonów. Biopreparaty mogą być stosowane w formie oprysków, zaprawiania nasion lub dodawania do gleby. Ich skuteczność zależy od wielu czynników, takich jak rodzaj mikroorganizmów, warunki glebowe i klimatyczne. Przykłady biopreparatów to preparaty bakteryjne, grzybowe i wirusowe. Stosowanie biopreparatów jest zgodne z zasadami rolnictwa ekologicznego i zrównoważonego rozwoju. Ważne jest, aby stosować biopreparaty zgodnie z zaleceniami producenta. """ # Chunking tekstu chunks = chunk_text(long_text, chunk_size=50) print("Wynik Chunkingu:") for i, chunk in enumerate(chunks): print(f"Chunk {i+1}:\n{textwrap.fill(chunk, width=80)}\n{'-'*20}") # Tokenizacja fragmentów tokenized_chunks = [tokenize_chunk(chunk) for chunk in chunks] print("\nWynik Tokenizacji (przykład pierwszego chunka):") print(tokenized_chunks[0]) # Przykładowe zapytanie do modelu GPT (wymaga dostępu do modelu i API) # tokenizer = GPT2Tokenizer.from_pretrained("gpt2") # model = ... (wczytanie modelu) # prompt = "Jakie są główne cele stosowania biopreparatów?" # for chunk in chunks: # input_ids = tokenizer.encode(prompt + " " + chunk, return_tensors="pt") # output = model.generate(input_ids, max_length=150) # decoded_output = tokenizer.decode(output[0], skip_special_tokens=True) # print(f"Odpowiedź na podstawie chunka:\n{decoded_output}\n{'-'*20}")
Editor is loading...
Leave a Comment