GithubHelp home page GithubHelp logo

binnazcabuk / sentiment-analysis-in-turkish-film Goto Github PK

View Code? Open in Web Editor NEW
5.0 1.0 2.0 3.51 MB

Graduation Project/Sentiment Analysis in Turkish Film Reviews

Python 100.00%
python nlp-machine-learning machine-learning navie-bayes-algorithm tf-idf countvectorizer zemberek svm logistic-regression seaborn nltk-library

sentiment-analysis-in-turkish-film's Introduction

Proje dosyası içerisinde veriseti ve .py uzantılı dosyalar bulunmaktadır.Tüm proje içeriği paylaşılmamıştır.

Demo


Proje İşleyişi

1. Veri setini oluşturma
2. Veri seti önişleme
3. Count Vectorizer Özellik vektörü çıkarımı ve matrise dönüştürme
4.Lojistik Regresyon, Naive Bayes ve Destek Vektör Makineleri ile ayrı ayrı eğitme
5. TF-IDF Vectorizer Özellik vektörü çıkarımı ve matrise dönüştürme
6.Lojistik Regresyon, Naive Bayes ve Destek Vektör Makineleri ile ayrı ayrı eğitme
7. İki özellik vektörü ile yapılan eğitimlerin başarı oranları karşılaştırması yapma
8. Başarılı modeli kullanarak kullanıcıya yorum ekranı sunma


Veri Seti

Çeşitli film izleme platformlarından toplanmış 11.506 negatif, 12.144 pozitif yorum olmak üzere toplam 23.650 yorum içermektedir.


Ön İşleme

Günlük konuşma dili ile yazılmış olan yorumlar çokça gereksiz kelime, anlamsız karakter içermektedir ve buda anlam karmaşasına sebep olmaktadır. Bunu önlemek ve daha sade veri seti elde etmek için ön işleme uygulanmıştır.  
Noktalama işaretleri de kelimeleri sayısal vektörlere dönüştürme aşamasında gereksiz yere vektörlerin büyüklüğünü arttıracak bir unsur olduğundan tüm noktalama işaretleri ve sayılar temizlenmiştir. Türkçe alfabede yer almayan tüm karakterler kaldırılmıştır. Şapkalı karakterler eşleniği ile değiştirilmiştir. Kelime vektörlerinin bütünlüğünü sağlamak için tüm harfler küçük harfe dönüştürülmüştür.

Zemberek Kütüphanesi Kullanılmıştır.


Count Vectorizer)

Bir metin belgesindeki terim / jeton sayımlarını vektöre dönüştürmek için kullanılır. 

Çok fazla terim olduğu için sınırlama koyulur ve vektör boyutları böylece daha küçük tutulur.
vect = TfidfVectorizer(min_df = 2,ngram_range=(1,2)).fit(X_train)
Projede 2 metinden daha az metinde gözüken kelimeleri, listeden kaldırdım.

Bu sınıf kullanılarak yapılan özellik çıkarımında ilk ve son 20 özellik


TF-IDF Vectorizer

Bir metinde geçen terimlerin çıkarılması ve bu terimlerin geçtiği miktara göre çeşitli hesapların yapılması üzerine kuruludur.

Örneğin, 0 – Bu film gerçekten muhteşem.
1 – Yaptığı muhteşem filmlerden sadece biri bu.
2 –Bu kadar sıkıcı film görmedim.
Birinci metin içinde muhteşem terimi için hesaplamamızı yaparsak
TF = 2 / 4 = 0.5�IDF = log(3/2) = 0.18
TF-IDF =0.5*0.18=0,09

Projede TF-IDF ile ilk ve son 20 özellik listelendiğinde


Lojistik Regresyon

Bu teoremde S biçimli bir eğri olan Lojistik Fonksiyon kullanıldığı için bu adı almıştır.

Bir yorumun iyi ya da kötü olduğunu hesaplarken eğer olasılık n(t)>= 0.5 ise pozitif bir yorumdur. Yani eğri altında kalan sonuçlar negatif, üstünde kalanlar ise pozitif yorumdur.


Naive Bayes

Naive Bayes sınıflandırıcısının temeli Bayes teoremine dayanır ve her değeri diğer değerlerden bağımsız olarak sınıflandırır. Olasılık kullanarak ve belirli bir dizi özelliğe dayanarak bir sınıfı, kategoriyi tahmin etmemizi sağlar.

A Pozitif – B Negatif P ( A | B ) = B olayı gerçekleştiğinde A olayının gerçekleşme olasılığı P ( B | A ) = A olayı gerçekleştiğinde B olayının gerçekleşme olasılığı
P ( B ) = B olayının gerçekleşme olasılığı


Destek Vektör Makineleri

Bu algoritmada, her bir veri maddesini belirli bir koordinatın değeri olan her özelliğin değeri ile birlikte n-boyutlu boşluğa (burada n sahip olduğunuz özelliklerin sayısı) bir nokta olarak çizilir. Ardından, iki sınıftan oldukça iyi ayrım yapan hiper-düzlemi bularak sınıflandırma gerçekleştirilir

Pozitif yorumların mavi renk, negatif yorumların kırmızı olduğunu düşünürsek, yapılan tahmin bu hiper-düzlem üzerinde olursa pozitif altta kalırsa negatif yorum olarak sınıflandırılır.


Model Başarı Karşılaştırma


Ekran Çıktısı

sentiment-analysis-in-turkish-film's People

Contributors

binnazcabuk avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.