
# Hotel review multi-aspect sentiment classification using T5

We fine tune a T5 pretrained model to generate multi-aspect sentiment classes. The outputs are whole sentiment, aspect, and aspect+sentiment.  

T5情緒面向分類多任務，依據中文簡體孟子T5預訓練模型微調，訓練資料集只有3萬筆，做NLP研究與課程的範例模型用途。

# 如何測試
在右側測試區輸入不同的任務文字

        範例1:
        面向::早餐可以吃的饱，但是东西没了，不一定会补
        範例2:
        面向情绪::房间空调系统有烟味，可考虑做调整
        範例3:
        整体情绪::位置离逢甲很近

資料集:
資料集蒐集自線上訂房網站的顧客留言10050筆，整理成3項任務，總筆數變成為3倍，共有30150筆(資料由本實驗室成員YYChang蒐集)。

輸入與輸出格式:有三個種類任務分別為:

'整体情绪::'
'面向::',
'面向情绪::'

        舉例如下:
        整体情绪::因为防疫期间早餐要在房内用餐，但房内电视下的平台有点窄，有点不方便,负面情绪
        整体情绪::只是隔音有点不好,负面情绪
        整体情绪::订的是豪华家庭房，空间还算大,正面情绪
        整体情绪::床大,正面情绪
        
        面向::房间有奇怪的味道,"整洁舒适面向,设施面向"
        面向::干净、舒适、亲切，价钱好～,"整洁舒适面向,性价比面向"
        面向::位置便利，可以在附近悠闲散步，至市区也不远，又临近大海，住得十分舒服。,"整洁舒适面向,地点面向"
        
        面向情绪::反应无效,服务面向的负面情绪
        面向情绪::床其实还蛮好睡，枕头床被还算干净，至少不会让皮肤痒。离火车站市场闹区近。,"整洁舒适面向的正面情绪,设施面向的正面情绪,地点面向的正面情绪"
        面向情绪::设备真的太旧了，灯光太暗了。,设施面向的负面情绪
        面向情绪::住四天，没人打扫清洁，第一天有盥洗用品，其余就没补充，热水供应不正常，交通尚可。,"整洁舒适面向的负面情绪,设施面向的负面情绪,地点面向的正面情绪"
        面向情绪::饭店太过老旧，房内桌子衣橱近乎溃烂，浴室有用过未清的毛巾，排水孔有近半垃圾未清，马桶肮脏，未提供浴巾，莲蓬头只能手持无法挂著墙上使用，空调无法控制，壁纸剥落，走道昏暗，近车站。,"整洁舒适面向的负面情绪,设施面向的负面情绪,地点面向的正面情绪"

預訓練模型: 
目前初步先使用"Langboat/mengzi-t5-base"簡體中文預訓練模型加以微調。
由"Langboat/mengzi-t5-base"官網資訊得知是由簡體中文語料所訓練，因此我們將繁體中文留言先轉成簡體中文，再進行微調訓練。

訓練平台: 使用Google colab Tesla T4 GPU進行了3 epochs訓練，費時55分鐘，val_loss約為0.0315，初步實驗，仍有很大的改善空間。

未來改善工作:下一階段會進行數據增強(由於蒐集的語料是不平衡),以及使用Google的mt5繁體簡體中文預訓練模型加以微調，微調語料就可直接使用繁體中文。

使用範例:(輸入繁體中文需先將文字轉為簡體中文，再丟給模型產出輸出文字)

# 載入模型(使用的是simplet5套件)
    #pip install simplet5
    from simplet5 import SimpleT5
    model = SimpleT5()
    model.load_model("t5","clhuang/t5-hotel-review-sentiment", use_gpu=False)

# 整體情緒分類任務
    text="整体情绪::位置离逢甲很近"
    model.predict(text)
    #['正面情绪']

# 面向分類任務
    text="面向::早餐可以吃的饱，但是东西没了，不一定会补"
    model.predict(text)
    #['服务面向']

# 面向分類+情绪分類任務
    text='面向情绪::房间空调系统有烟味，可考虑做调整'
    model.predict(text)
    #['设施面向的负面情绪']

# 輸入輸出改成是繁(正)體中文，輸出三項分類任務資訊
    from opencc import OpenCC
    t2s = OpenCC('t2s')  # convert from Traditional Chinese to Simplified Chinese
    s2t = OpenCC('s2t')  # convert from Simplified Chinese to Traditional Chinese
    class_types = ['整体情绪::','面向::','面向情绪::']
    def predict(text):
        text = t2s.convert(text)
        response=[]
        for prefix  in class_types:
            response.append(s2t.convert(model.predict(prefix+text)[0]))
        return response
    
    text='位置近市區，人員親切，食物好吃'
    predict(text)
    #['正面情緒', '服務面向,地點面向', '服務面向的正面情緒,地點面向的正面情緒']

{"language": ["tw"], "license": "afl-3.0", "tags": ["t5"]}
transformers pytorch t5 text2text-generation tw license:afl-3.0 autotrain_compatible endpoints_compatible text-generation-inference region:us
TAGS
#transformers #pytorch #t5 #text2text-generation #tw #license-afl-3.0 #autotrain_compatible #endpoints_compatible #text-generation-inference #region-us 


# Hotel review multi-aspect sentiment classification using T5

We fine tune a T5 pretrained model to generate multi-aspect sentiment classes. The outputs are whole sentiment, aspect, and aspect+sentiment.  

T5情緒面向分類多任務，依據中文簡體孟子T5預訓練模型微調，訓練資料集只有3萬筆，做NLP研究與課程的範例模型用途。

# 如何測試
在右側測試區輸入不同的任務文字

        範例1:
        面向::早餐可以吃的饱，但是东西没了，不一定会补
        範例2:
        面向情绪::房间空调系统有烟味，可考虑做调整
        範例3:
        整体情绪::位置离逢甲很近

資料集:
資料集蒐集自線上訂房網站的顧客留言10050筆，整理成3項任務，總筆數變成為3倍，共有30150筆(資料由本實驗室成員YYChang蒐集)。

輸入與輸出格式:有三個種類任務分別為:

'整体情绪::'
'面向::',
'面向情绪::'

        舉例如下:
        整体情绪::因为防疫期间早餐要在房内用餐，但房内电视下的平台有点窄，有点不方便,负面情绪
        整体情绪::只是隔音有点不好,负面情绪
        整体情绪::订的是豪华家庭房，空间还算大,正面情绪
        整体情绪::床大,正面情绪
        
        面向::房间有奇怪的味道,"整洁舒适面向,设施面向"
        面向::干净、舒适、亲切，价钱好～,"整洁舒适面向,性价比面向"
        面向::位置便利，可以在附近悠闲散步，至市区也不远，又临近大海，住得十分舒服。,"整洁舒适面向,地点面向"
        
        面向情绪::反应无效,服务面向的负面情绪
        面向情绪::床其实还蛮好睡，枕头床被还算干净，至少不会让皮肤痒。离火车站市场闹区近。,"整洁舒适面向的正面情绪,设施面向的正面情绪,地点面向的正面情绪"
        面向情绪::设备真的太旧了，灯光太暗了。,设施面向的负面情绪
        面向情绪::住四天，没人打扫清洁，第一天有盥洗用品，其余就没补充，热水供应不正常，交通尚可。,"整洁舒适面向的负面情绪,设施面向的负面情绪,地点面向的正面情绪"
        面向情绪::饭店太过老旧，房内桌子衣橱近乎溃烂，浴室有用过未清的毛巾，排水孔有近半垃圾未清，马桶肮脏，未提供浴巾，莲蓬头只能手持无法挂著墙上使用，空调无法控制，壁纸剥落，走道昏暗，近车站。,"整洁舒适面向的负面情绪,设施面向的负面情绪,地点面向的正面情绪"

預訓練模型: 
目前初步先使用"Langboat/mengzi-t5-base"簡體中文預訓練模型加以微調。
由"Langboat/mengzi-t5-base"官網資訊得知是由簡體中文語料所訓練，因此我們將繁體中文留言先轉成簡體中文，再進行微調訓練。

訓練平台: 使用Google colab Tesla T4 GPU進行了3 epochs訓練，費時55分鐘，val_loss約為0.0315，初步實驗，仍有很大的改善空間。

未來改善工作:下一階段會進行數據增強(由於蒐集的語料是不平衡),以及使用Google的mt5繁體簡體中文預訓練模型加以微調，微調語料就可直接使用繁體中文。

使用範例:(輸入繁體中文需先將文字轉為簡體中文，再丟給模型產出輸出文字)

# 載入模型(使用的是simplet5套件)
    #pip install simplet5
    from simplet5 import SimpleT5
    model = SimpleT5()
    model.load_model("t5","clhuang/t5-hotel-review-sentiment", use_gpu=False)

# 整體情緒分類任務
    text="整体情绪::位置离逢甲很近"
    model.predict(text)
    #['正面情绪']

# 面向分類任務
    text="面向::早餐可以吃的饱，但是东西没了，不一定会补"
    model.predict(text)
    #['服务面向']

# 面向分類+情绪分類任務
    text='面向情绪::房间空调系统有烟味，可考虑做调整'
    model.predict(text)
    #['设施面向的负面情绪']

# 輸入輸出改成是繁(正)體中文，輸出三項分類任務資訊
    from opencc import OpenCC
    t2s = OpenCC('t2s')  # convert from Traditional Chinese to Simplified Chinese
    s2t = OpenCC('s2t')  # convert from Simplified Chinese to Traditional Chinese
    class_types = ['整体情绪::','面向::','面向情绪::']
    def predict(text):
        text = t2s.convert(text)
        response=[]
        for prefix  in class_types:
            URL(s2t.convert(model.predict(prefix+text)[0]))
        return response
    
    text='位置近市區，人員親切，食物好吃'
    predict(text)
    #['正面情緒', '服務面向,地點面向', '服務面向的正面情緒,地點面向的正面情緒']

# Hotel review multi-aspect sentiment classification using T5

We fine tune a T5 pretrained model to generate multi-aspect sentiment classes. The outputs are whole sentiment, aspect, and aspect+sentiment.  

T5情緒面向分類多任務，依據中文簡體孟子T5預訓練模型微調，訓練資料集只有3萬筆，做NLP研究與課程的範例模型用途。 # 如何測試
在右側測試區輸入不同的任務文字

        範例1:
        面向::早餐可以吃的饱，但是东西没了，不一定会补
        範例2:
        面向情绪::房间空调系统有烟味，可考虑做调整
        範例3:
        整体情绪::位置离逢甲很近

資料集:
資料集蒐集自線上訂房網站的顧客留言10050筆，整理成3項任務，總筆數變成為3倍，共有30150筆(資料由本實驗室成員YYChang蒐集)。

輸入與輸出格式:有三個種類任務分別為:

'整体情绪::'
'面向::',
'面向情绪::'

        舉例如下:
        整体情绪::因为防疫期间早餐要在房内用餐，但房内电视下的平台有点窄，有点不方便,负面情绪
        整体情绪::只是隔音有点不好,负面情绪
        整体情绪::订的是豪华家庭房，空间还算大,正面情绪
        整体情绪::床大,正面情绪
        
        面向::房间有奇怪的味道,"整洁舒适面向,设施面向"
        面向::干净、舒适、亲切，价钱好～,"整洁舒适面向,性价比面向"
        面向::位置便利，可以在附近悠闲散步，至市区也不远，又临近大海，住得十分舒服。,"整洁舒适面向,地点面向"
        
        面向情绪::反应无效,服务面向的负面情绪
        面向情绪::床其实还蛮好睡，枕头床被还算干净，至少不会让皮肤痒。离火车站市场闹区近。,"整洁舒适面向的正面情绪,设施面向的正面情绪,地点面向的正面情绪"
        面向情绪::设备真的太旧了，灯光太暗了。,设施面向的负面情绪
        面向情绪::住四天，没人打扫清洁，第一天有盥洗用品，其余就没补充，热水供应不正常，交通尚可。,"整洁舒适面向的负面情绪,设施面向的负面情绪,地点面向的正面情绪"
        面向情绪::饭店太过老旧，房内桌子衣橱近乎溃烂，浴室有用过未清的毛巾，排水孔有近半垃圾未清，马桶肮脏，未提供浴巾，莲蓬头只能手持无法挂著墙上使用，空调无法控制，壁纸剥落，走道昏暗，近车站。,"整洁舒适面向的负面情绪,设施面向的负面情绪,地点面向的正面情绪"

預訓練模型: 
目前初步先使用"Langboat/mengzi-t5-base"簡體中文預訓練模型加以微調。
由"Langboat/mengzi-t5-base"官網資訊得知是由簡體中文語料所訓練，因此我們將繁體中文留言先轉成簡體中文，再進行微調訓練。

訓練平台: 使用Google colab Tesla T4 GPU進行了3 epochs訓練，費時55分鐘，val_loss約為0.0315，初步實驗，仍有很大的改善空間。

未來改善工作:下一階段會進行數據增強(由於蒐集的語料是不平衡),以及使用Google的mt5繁體簡體中文預訓練模型加以微調，微調語料就可直接使用繁體中文。

使用範例:(輸入繁體中文需先將文字轉為簡體中文，再丟給模型產出輸出文字) # 載入模型(使用的是simplet5套件)
    #pip install simplet5
    from simplet5 import SimpleT5
    model = SimpleT5()
    model.load_model("t5","clhuang/t5-hotel-review-sentiment", use_gpu=False) # 整體情緒分類任務
    text="整体情绪::位置离逢甲很近"
    model.predict(text)
    #['正面情绪'] # 面向分類任務
    text="面向::早餐可以吃的饱，但是东西没了，不一定会补"
    model.predict(text)
    #['服务面向'] # 面向分類+情绪分類任務
    text='面向情绪::房间空调系统有烟味，可考虑做调整'
    model.predict(text)
    #['设施面向的负面情绪'] # 輸入輸出改成是繁(正)體中文，輸出三項分類任務資訊
    from opencc import OpenCC
    t2s = OpenCC('t2s')  # convert from Traditional Chinese to Simplified Chinese
    s2t = OpenCC('s2t')  # convert from Simplified Chinese to Traditional Chinese
    class_types = ['整体情绪::','面向::','面向情绪::']
    def predict(text):
        text = t2s.convert(text)
        response=[]
        for prefix  in class_types:
            URL(s2t.convert(model.predict(prefix+text)[0]))
        return response
    
    text='位置近市區，人員親切，食物好吃'
    predict(text)
    #['正面情緒', '服務面向,地點面向', '服務面向的正面情緒,地點面向的正面情緒']
TAGS
#transformers #pytorch #t5 #text2text-generation #tw #license-afl-3.0 #autotrain_compatible #endpoints_compatible #text-generation-inference #region-us 
 # Hotel review multi-aspect sentiment classification using T5

We fine tune a T5 pretrained model to generate multi-aspect sentiment classes. The outputs are whole sentiment, aspect, and aspect+sentiment.  

T5情緒面向分類多任務，依據中文簡體孟子T5預訓練模型微調，訓練資料集只有3萬筆，做NLP研究與課程的範例模型用途。 # 如何測試
在右側測試區輸入不同的任務文字

        範例1:
        面向::早餐可以吃的饱，但是东西没了，不一定会补
        範例2:
        面向情绪::房间空调系统有烟味，可考虑做调整
        範例3:
        整体情绪::位置离逢甲很近

資料集:
資料集蒐集自線上訂房網站的顧客留言10050筆，整理成3項任務，總筆數變成為3倍，共有30150筆(資料由本實驗室成員YYChang蒐集)。

輸入與輸出格式:有三個種類任務分別為:

'整体情绪::'
'面向::',
'面向情绪::'

        舉例如下:
        整体情绪::因为防疫期间早餐要在房内用餐，但房内电视下的平台有点窄，有点不方便,负面情绪
        整体情绪::只是隔音有点不好,负面情绪
        整体情绪::订的是豪华家庭房，空间还算大,正面情绪
        整体情绪::床大,正面情绪
        
        面向::房间有奇怪的味道,"整洁舒适面向,设施面向"
        面向::干净、舒适、亲切，价钱好～,"整洁舒适面向,性价比面向"
        面向::位置便利，可以在附近悠闲散步，至市区也不远，又临近大海，住得十分舒服。,"整洁舒适面向,地点面向"
        
        面向情绪::反应无效,服务面向的负面情绪
        面向情绪::床其实还蛮好睡，枕头床被还算干净，至少不会让皮肤痒。离火车站市场闹区近。,"整洁舒适面向的正面情绪,设施面向的正面情绪,地点面向的正面情绪"
        面向情绪::设备真的太旧了，灯光太暗了。,设施面向的负面情绪
        面向情绪::住四天，没人打扫清洁，第一天有盥洗用品，其余就没补充，热水供应不正常，交通尚可。,"整洁舒适面向的负面情绪,设施面向的负面情绪,地点面向的正面情绪"
        面向情绪::饭店太过老旧，房内桌子衣橱近乎溃烂，浴室有用过未清的毛巾，排水孔有近半垃圾未清，马桶肮脏，未提供浴巾，莲蓬头只能手持无法挂著墙上使用，空调无法控制，壁纸剥落，走道昏暗，近车站。,"整洁舒适面向的负面情绪,设施面向的负面情绪,地点面向的正面情绪"

預訓練模型: 
目前初步先使用"Langboat/mengzi-t5-base"簡體中文預訓練模型加以微調。
由"Langboat/mengzi-t5-base"官網資訊得知是由簡體中文語料所訓練，因此我們將繁體中文留言先轉成簡體中文，再進行微調訓練。

訓練平台: 使用Google colab Tesla T4 GPU進行了3 epochs訓練，費時55分鐘，val_loss約為0.0315，初步實驗，仍有很大的改善空間。

未來改善工作:下一階段會進行數據增強(由於蒐集的語料是不平衡),以及使用Google的mt5繁體簡體中文預訓練模型加以微調，微調語料就可直接使用繁體中文。

使用範例:(輸入繁體中文需先將文字轉為簡體中文，再丟給模型產出輸出文字) # 載入模型(使用的是simplet5套件)
    #pip install simplet5
    from simplet5 import SimpleT5
    model = SimpleT5()
    model.load_model("t5","clhuang/t5-hotel-review-sentiment", use_gpu=False) # 整體情緒分類任務
    text="整体情绪::位置离逢甲很近"
    model.predict(text)
    #['正面情绪'] # 面向分類任務
    text="面向::早餐可以吃的饱，但是东西没了，不一定会补"
    model.predict(text)
    #['服务面向'] # 面向分類+情绪分類任務
    text='面向情绪::房间空调系统有烟味，可考虑做调整'
    model.predict(text)
    #['设施面向的负面情绪'] # 輸入輸出改成是繁(正)體中文，輸出三項分類任務資訊
    from opencc import OpenCC
    t2s = OpenCC('t2s')  # convert from Traditional Chinese to Simplified Chinese
    s2t = OpenCC('s2t')  # convert from Simplified Chinese to Traditional Chinese
    class_types = ['整体情绪::','面向::','面向情绪::']
    def predict(text):
        text = t2s.convert(text)
        response=[]
        for prefix  in class_types:
            URL(s2t.convert(model.predict(prefix+text)[0]))
        return response
    
    text='位置近市區，人員親切，食物好吃'
    predict(text)
    #['正面情緒', '服務面向,地點面向', '服務面向的正面情緒,地點面向的正面情緒']
passage: TAGS
#transformers #pytorch #t5 #text2text-generation #tw #license-afl-3.0 #autotrain_compatible #endpoints_compatible #text-generation-inference #region-us 
# Hotel review multi-aspect sentiment classification using T5

We fine tune a T5 pretrained model to generate multi-aspect sentiment classes. The outputs are whole sentiment, aspect, and aspect+sentiment.  

T5情緒面向分類多任務，依據中文簡體孟子T5預訓練模型微調，訓練資料集只有3萬筆，做NLP研究與課程的範例模型用途。