繁体   English   中英

情绪分析 Python 标记化

[英]Sentiment analysis Python tokenization

我的问题如下:我想对意大利语推文进行情绪分析,我想对我的意大利语文本进行标记和词形还原,以便为我的论文找到新的分析维度。 问题是我想标记我的主题标签,同时拆分组合的标签。 例如,如果我有#nogreenpass,我也会没有# 符号,因为文本的所有单词都会更好地理解短语的情感。 我怎么能这样做? 我尝试使用 sapCy,但没有结果。 我创建了一个 function 来清理我的文本,但我不能以我想要的方式使用主题标签。 我正在使用这段代码:

import re
import spacy
from spacy.tokenizer import Tokenizer

nlp = spacy.load('it_core_news_lg')

# Clean_text function
def clean_text(text):
    text = str(text).lower()
    doc = nlp(text)
    text = re.sub(r'#[a-z0-9]+', str(' '.join(t in nlp(doc))), str(text))
    text = re.sub(r'\n', ' ', str(text)) # Remove /n
    text = re.sub(r'@[A-Za-z0-9]+', '<user>', str(text)) # Remove and replace @mention
    text = re.sub(r'RT[\s]+', '', str(text)) # Remove RT
    text = re.sub(r'https?:\/\/\S+', '<url>', str(text)) # Remove and replace links
    return text

例如,在这里我不知道如何添加第一个 < 和最后一个 > 来替换 # 符号,并且标记化过程无法正常工作。 感谢您为我花费的时间和耐心。 我希望在 Jupiter 分析和 python 编码方面变得更强大,这样我也可以为您的问题提供帮助。 感谢你们!

你可以调整你当前的clean_code

def clean_text(text):
    text = str(text).lower()
    text = re.sub(r'#(\w+)', r'<\1>', text)
    text = re.sub(r'\n', ' ', text) # Remove /n
    text = re.sub(r'@[A-Za-z0-9]+', '<user>', text) # Remove and replace @mention
    text = re.sub(r'RT\s+', '', text) # Remove RT
    text = re.sub(r'https?://\S+\b/?', '<url>', text) # Remove and replace links
    return text

在线查看 Python 演示

以下代码行:

print(clean_text("@Marcorossi hanno ragione I #novax htt"+"p://www.asfag.com/"))

将产生

<user> hanno ragione i <novax> <url>

请注意,没有简单的方法可以将粘合的字符串拆分为其组成词。 有关如何做到这一点的想法,请参阅如何将没有空格的文本拆分为单词列表

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM