Belirteçleştirme:
Belirteçleştirme, bir metin akışını sözcüklere, ifadelere, sembollere veya belirteç olarak bilinen diğer anlamlı öğelere ayırma işlemidir.
İşte NLTK kitaplığı kullanılarak Python’da bir belirteçleştirme örneği:
import nltk
from nltk.tokenize import word_tokenizetext = "This is an example of tokenization."
tokens = word_tokenize(text)
print(tokens)
# Output: ('This', 'is', 'an', 'example', 'of', 'tokenization', '.')
# If you get error in above code add below code after import nltk
nltk.download('punkt')
tokenizer = nltk.data.load('tokenizers/punkt/english.pickle')
Lemmatizasyon:
Lemmatizasyon, bir kelimeyi lemma adı verilen temel veya kök biçimine indirgeme işlemidir. Kök çıkarma benzer bir süreçtir, ancak genellikle gerçek kelimeler olmayan kelimelerle sonuçlanır.
İşte Python’da NLTK kütüphanesini kullanan bir lemmatizasyon örneği:
import nltk
from nltk.stem import WordNetLemmatizerlemmatizer = WordNetLemmatizer()
print(lemmatizer.lemmatize("running"))
# Output: 'running'
print(lemmatizer.lemmatize("ran"))
# Output: 'run'
buharlama:
Doğal Dil İşleme’de (NLP), “buharlama”, bir kelimeyi temel veya kök biçimine indirgeme sürecini ifade eder. Bu genellikle bir kelimenin farklı biçimlerini bir arada gruplamak için yapılır, böylece tek bir öğe olarak birlikte analiz edilebilirler.
İşte NLTK kütüphanesini kullanarak python’da kök çıkarma örneği
import nltk
from nltk.stem import PorterStemmerstemmer = PorterStemmer()
print(stemmer.stem('running'))
# Output: 'run'
print(stemmer.stem('runner'))
# Output: 'runner'
Konuşma Parçası Etiketleme:
Konuşma parçası (POS) etiketleme, bir metindeki her kelimeyi karşılık gelen POS etiketiyle işaretleme işlemidir. Python’da NLTK kitaplığını kullanan bir POS etiketleme örneği:
import nltk
from nltk import pos_tag
from nltk.tokenize import word_tokenize
text = "I am learning NLP techniques in Python."
tokens = word_tokenize(text)
pos_tags = pos_tag(tokens)
print(pos_tags)
# Output: (('I', 'PRP'), ('am', 'VBP'), ('learning', 'VBG'), ('NLP', 'NNP'), ('techniques', 'NNS'), ('in', 'IN'), ('Python', 'NNP'), ('.', '.'))
Adlandırılmış Varlık Tanıma:
Adlandırılmış Varlık Tanıma (NER), bir metindeki adlandırılmış varlıkları tanımlama ve kişi adları, kuruluşlar, konumlar, tıbbi kodlar, zaman ifadeleri, miktarlar, parasal değerler, yüzdeler vb. gibi önceden tanımlanmış kategoriler halinde sınıflandırma işlemidir. NLTK kullanarak python’da NER
import nltk
from nltk import ne_chunk
from nltk.tokenize import word_tokenize
text = "Barack Obama was born in Hawaii."
tokens = word_tokenize(text)
tagged_tokens = nltk.pos_tag(tokens)
ner_tree = ne_chunk(tagged_tokens)
print(ner_tree)
# Output: (S (PERSON Barack))
Duygu Analizi:
Duygu Analizi, bir metnin arkasındaki duygusal tonu, olumlu, olumsuz veya nötr olup olmadığını belirleme sürecidir. İşte Python’da NLTK kitaplığını kullanan bir Duygu Analizi örneği:
import nltk
from nltk.sentiment import SentimentIntensityAnalyzer
text = "I love this product! It's amazing."
sia = SentimentIntensityAnalyzer()
score = sia.polarity_scores(text)
print(score)
# Output: {'neg': 0.0, 'neu': 0.192, 'pos': 0.808, 'compound': 0.6369}
Metin Sınıflandırması:
Metin Sınıflandırma, bir metin parçasına önceden tanımlanmış kategoriler veya etiketler atama işlemidir. İşte Python’da scikit-learn kitaplığını kullanan bir Metin Sınıflandırma örneği:
import pandas as pd
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.naive_bayes import MultinomialNB
# Create a dataset
data = {'text': ('This is a positive text.', 'This is a negative text.'), 'label': ('positive', 'negative')}
df = pd.DataFrame(data)
# Create a CountVectorizer object
vectorizer = CountVectorizer()
# Transform the text column
X = vectorizer.fit_transform(df('text'))
# Create a MultinomialNB object
clf = MultinomialNB()
# Fit the model
clf.fit(X, df('label'))
# Test the model
text = "This is a neutral text."
X_test = vectorizer.transform((text))
pred = clf.predict(X_test)
print(pred)
# Output: ('positive')
Dil çevirisi:
Dil Çevirisi, metni bir dilden diğerine dönüştürme işlemidir.
Googletrans kitaplığı kullanılarak Python’da Dil Çevirisine bir örnek:
from googletrans import Translator
translator = Translator()
text = "I am learning NLP techniques in Python."
translated_text = translator.translate(text, dest='fr').text
print(translated_text)
# Output: "Je apprends des techniques NLP en Python."
Metin Özetleme:
Metin özetleme, bir metin parçasını ana noktalarına yoğunlaştırma işlemidir.
Python’da gensim kütüphanesini kullanan bir Metin Özetleme örneği:
from gensim.summarization import summarize
text = "Text summarization is the process of condensing a piece of text to its main points. The goal of summarization is to create a condensed version that retains the most important information from the original text. There are several methods for summarization including extraction-based methods and abstraction-based methods. Extraction-based methods select a subset of the words from the original text, while abstraction-based methods generate a new summary by using a model trained on the original text."
summary = summarize(text)
print(summary)
# Output: "There are several methods for summarization including extraction-based methods and abstraction-based methods. Extraction-based methods select a subset of the words from the original text
Kelime Gömmeleri (örn. Word2Vec, GloVe):
Kelime yerleştirmeleri, benzer anlama sahip kelimelerin benzer bir temsile sahip olmasını sağlayan bir kelime gösterimi türüdür.
Gensim kütüphanesini kullanarak Python’da bir Word2Vec modelini eğitmeye bir örnek:
from gensim.models import Word2Vec
# Define a dataset
sentences = (('This', 'is', 'a', 'positive', 'text'),
('This', 'is', 'a', 'negative', 'text'),
('This', 'is', 'a', 'neutral', 'text'))
# Train the model
model = Word2Vec(sentences, size=100, window=5, min_count=1, workers=4)
# Access the trained model's word vector
word_vector = model.wv('positive')
print(word_vector)
# Output: array((-1.90734863e-03, -1.52587891e-03, 4.57763672e-04, ...), dtype=float32)
Gensim kitaplığı kullanılarak Python’da önceden eğitilmiş GloVe modelinin yüklenmesine bir örnek:
from gensim.models import KeyedVectors
# Load the model
model = KeyedVectors.load_word2vec_format('path/to/glove.6B.100d.txt', binary=False)
# Access the word vector
word_vector = model('word')
print(word_vector)
Bağımlılık Ayrıştırma:
Bağımlılık ayrıştırma, cümledeki kelimeler arasındaki bağımlılıklara dayalı olarak bir cümlenin gramer yapısını analiz etme sürecidir.
Python’da spaCy kitaplığını kullanan bir Bağımlılık Ayrıştırma örneği:
import spacy
# Load the model
nlp = spacy.load("en_core_web_sm")
# Define a sentence
sentence = "I am learning NLP techniques in Python."
# Apply dependency parsing
doc = nlp(sentence)
for token in doc:
print(token.text, token.dep_)
# Output:
# I nsubj
# am ROOT
# learning acomp
# NLP compound
# techniques dobj
# in prep
# Python pobj
Not: Yukarıdaki örnek spaCy kitaplığını kullanırken, Bağımlılık ayrıştırması için kullanılabilecek NLTK, Stanford Ayrıştırıcı vb. gibi başka kitaplıklar da vardır.
konu modelleme
Konu modelleme, bir metin külliyatındaki kalıpları ve konuları belirlemek için doğal dil işlemede (NLP) kullanılan bir yöntemdir. Konu modelleme için popüler bir teknik, bir dizi belgedeki gizli konuları keşfetmek için istatistiksel bir model kullanan Gizli Dirichlet Tahsisi’dir (LDA).
Python’da LDA ve gensim kitaplığı kullanılarak konu modellemenin nasıl gerçekleştirileceğine ilişkin bir örnek:
from gensim.corpora import Dictionary
from gensim.models import LdaModel
# Example text corpus
texts = (("cat", "dog", "rat", "elephant"),
("cat", "dog", "rat", "mouse"),
("dog", "rat", "mouse"))
# Create a dictionary from the texts
dictionary = Dictionary(texts)
# Create a Bag-of-Words (BoW) representation of the texts
corpus = (dictionary.doc2bow(text) for text in texts)
# Train an LDA model on the corpus
lda = LdaModel(corpus, num_topics=2, id2word=dictionary)
# Print the topics
for topic_id, topic in lda.print_topics():
print("Topic:", topic_id+1)
print(topic)
Bu örnek, üç belge içeren basit bir metin derlemi kullanır ve 2 konu içeren bir LDA modelini eğitir. Çıktı, model tarafından öğrenilen iki konuyu ve her konuyla ilişkili kelimeleri gösterecektir.
Terim sıklığı
Terim sıklığı(tf), bir terimin bir belgede ne sıklıkta göründüğünün bir ölçüsüdür. Genellikle bilgi alma ve metin madenciliğinde kullanılır. tf-idf (terim frekansı-ters belge frekansı), tf ve idf’ye dayalı olarak bir belgedeki her terime bir ağırlık atayan bir ağırlıklandırma şemasıdır.
Python kullanarak bir belgenin terim sıklığının nasıl hesaplanacağına dair bir örnek:
from collections import Counter
# Example document
document = "This is an example document. It contains several words, such as 'example' and 'document'."
# Tokenize the document
tokens = document.split()
# Count the frequency of each token
tf = Counter(tokens)
# Print the term frequency
print(tf)
Bu örnek, belgedeki her kelimenin sıklığını sözlük biçiminde gösterecektir.
Kaynak : Topic Modelling on Medium