🚀 INTERPRESSニュース分類
このプロジェクトは、INTERPRESSニュースの分類に焦点を当てています。特定のデータセットを用いてモデルを訓練し、ニュースを正確に分類し、ニュース情報の効率的な処理をサポートします。
🚀 クイックスタート
このプロジェクトでは、TorchとTensorflowを使用したニュース分類予測の方法が提供されています。あなたのニーズに合わせて適切な方法を選択できます。
✨ 主な機能
- 実データセット:INTERPRESSからダウンロードした実世界のデータを使用し、選別後108K件のデータをモデル訓練に使用しました。
- 高い正確性:モデルは訓練データと検証データで97%の正確率を達成しました。
- 複数フレームワーク対応:TorchとTensorflowの2つのディープラーニングフレームワークをサポートしています。
📦 インストール
Torch
pip install transformers or pip install transformers==4.3.3
Tensorflow
pip install transformers or pip install transformers==4.3.3
💻 使用例
基本的な使用法
Torch
from transformers import AutoTokenizer, AutoModelForSequenceClassification
tokenizer = AutoTokenizer.from_pretrained("serdarakyol/interpress-turkish-news-classification")
model = AutoModelForSequenceClassification.from_pretrained("serdarakyol/interpress-turkish-news-classification")
import torch
if torch.cuda.is_available():
device = torch.device("cuda")
model = model.cuda()
print('There are %d GPU(s) available.' % torch.cuda.device_count())
print('GPU name is:', torch.cuda.get_device_name(0))
else:
print('No GPU available, using the CPU instead.')
device = torch.device("cpu")
import numpy as np
def prediction(news):
news=[news]
indices=tokenizer.batch_encode_plus(
news,
max_length=512,
add_special_tokens=True,
return_attention_mask=True,
padding='max_length',
truncation=True,
return_tensors='pt')
inputs = indices["input_ids"].clone().detach().to(device)
masks = indices["attention_mask"].clone().detach().to(device)
with torch.no_grad():
output = model(inputs, token_type_ids=None,attention_mask=masks)
logits = output[0]
logits = logits.detach().cpu().numpy()
pred = np.argmax(logits,axis=1)[0]
return pred
news = r"ABD'den Prens Selman'a yaptırım yok Beyaz Saray Sözcüsü Psaki, Muhammed bin Selman'a yaptırım uygulamamanın \"doğru karar\" olduğunu savundu. Psaki, \"Tarihimizde, Demokrat ve Cumhuriyetçi başkanların yönetimlerinde diplomatik ilişki içinde olduğumuz ülkelerin liderlerine yönelik yaptırım getirilmemiştir\" dedi."
labels = {
0 : "Culture-Art",
1 : "Economy",
2 : "Politics",
3 : "Education",
4 : "World",
5 : "Sport",
6 : "Technology",
7 : "Magazine",
8 : "Health",
9 : "Agenda"
}
pred = prediction(news)
print(labels[pred])
Tensorflow
import tensorflow as tf
from transformers import BertTokenizer, TFBertForSequenceClassification
import numpy as np
tokenizer = BertTokenizer.from_pretrained('serdarakyol/interpress-turkish-news-classification')
model = TFBertForSequenceClassification.from_pretrained("serdarakyol/interpress-turkish-news-classification")
news = r"ABD'den Prens Selman'a yaptırım yok Beyaz Saray Sözcüsü Psaki, Muhammed bin Selman'a yaptırım uygulamamanın \"doğru karar\" olduğunu savundu. Psaki, \"Tarihimizde, Demokrat ve Cumhuriyetçi başkanların yönetimlerinde diplomatik ilişki içinde olduğumuz ülkelerin liderlerine yönelik yaptırım getirilmemiştir\" dedi."
inputs = tokenizer(news, return_tensors="tf")
inputs["labels"] = tf.reshape(tf.constant(1), (-1, 1))
outputs = model(inputs)
loss = outputs.loss
logits = outputs.logits
pred = np.argmax(logits,axis=1)[0]
print(labels[pred])
📚 ドキュメント
データセット
データセットはINTERPRESSからダウンロードされた実世界のデータです。実際には273K件のデータがありましたが、このモデルの訓練のために選別後108K件のデータを使用しました。データセットに関する詳細情報は、このリンクを参照してください。
モデル
モデルは訓練データと検証データで97%の正確率を達成しました。データは80%の訓練データと20%の検証データに分割されました。結果は以下の通りです。
分類レポート

混同行列

📄 ライセンス
ドキュメントにはライセンスに関する情報が記載されていません。
@yavuzkomecoglu の貢献に感謝します。
何か質問があれば、いつでも連絡してください:
