>  기사  >  백엔드 개발  >  Python sklearn이 텍스트 데이터에서 기능 추출을 수행하는 방법

Python sklearn이 텍스트 데이터에서 기능 추출을 수행하는 방법

WBOY
WBOY앞으로
2023-05-17 10:55:411435검색

텍스트 특징 추출

기능: 텍스트 데이터 특성화

(문장, 구문, 단어, 문자)은 일반적으로 단어를 특징 값으로 사용합니다.

방법 1: CountVectorizer

sklearn.feature_extraction.text.CountVectorizer(stop_words= [])

단어 빈도 행렬 반환(각 샘플에 나타나는 특징 단어 수 계산)

CountVectorizer.fit_transform(X)

X: 텍스트 문자열을 포함하는 텍스트 또는 반복 가능한 개체

반환 값: 희소 행렬 반환

CountVectorizer.inverse_transform(X)

코드 표시:

from sklearn.feature_extraction.text import CountVectorizer
def count_demo():
    #文本特征抽取
    data=["life is short, i like like python","life is too long,i dislike python"]
    #1、实例化一个转换器类
    transfer=CountVectorizer()
    #2、调用fit_transform()
    result=transfer.fit_transform(data)
    print("result:\n",result.toarray())
    print("特征名字:\n", transfer.get_feature_names())
    return None

방법 2: TfidfVectorizer

키워드: 특정 카테고리의 기사에서는 여러 번 나타나지만 다른 카테고리의 기사에서는 드물게 나타납니다

. Tf-idf 텍스트 특징 추출

①TF-IDF의 주요 아이디어는: 특정 기사에서 확률이 높은 단어나 문구가 등장하고 다른 기사에서는 거의 등장하지 않는 경우, 해당 단어나 문구가 카테고리 구별이 좋은 것으로 간주하는 것입니다. 능력, 분류에 적합합니다.

②TF-IDF 함수: 문서 세트 또는 코퍼스의 문서 중 하나에 대한 단어의 중요성을 평가하는 데 사용됩니다.

Formula

①용어 빈도(tf)는 특정 단어가 문서에 나타나는 빈도를 나타냅니다.

②역문서 빈도(idf)는 단어의 일반적인 중요도를 측정한 것입니다. 특정 단어의 idf를 계산하려면 해당 단어가 포함된 파일 수를 전체 파일 수로 나누고 기본 10 로그를 사용해야 합니다.

tfidf = tf * idf

출력 결과를 이해할 수 있습니다. 중요도

API

sklearn.feature_extraction.text.TfidfVectorizer(stop_words=None,...)

단어의 가중치 행렬을 반환합니다

TfidfVectorizer.fit_transform(X)

X: 텍스트 또는 텍스트 문자열 포함 Iterable object

반환 값: 희소 행렬 반환

TfidfVectorizer.inverse_transform(X)

X:배열 배열 또는 희소 행렬

반환 값: 변환 전 데이터 형식

TfidfVectorizer.get_feature_names( )

반환값: 단어 목록

중국어 단어 분할 + 특징 추출

from sklearn.feature_extraction.text import TfidfVectorizer
import jieba
def cut_word(text):
    #中文分词
    #jieba.cut(text)返回的是生成器对象,用list强转成列表
    word=list(jieba.cut(text))
    #转成字符串
    words=" ".join(word)
    return words
def tfidf_demo():
    data = ["今天很残酷,明天更残酷,后天会很美好,但绝大多数人都死在明天晚上,却见不到后天的太阳,所以我们干什么都要坚持",
            "注重自己的名声,努力工作、与人为善、遵守诺言,这样对你们的事业非常有帮助",
            "服务是全世界最贵的产品,所以最佳的服务就是不要服务,最好的服务就是不需要服务"]
    data_new = []
    # 将中文文本进行分词
    for sentence in data:
        data_new.append(cut_word(sentence))
    # 1、实例化一个转换器类
    transfer = TfidfVectorizer()
    # 2、调用fit_transform()
    result = transfer.fit_transform(data_new)  # 得到词频矩阵 是一个sparse矩阵
    print("result:\n", result.toarray())  # 将sparse矩阵转化为二维数组
    print("特征名字:\n", transfer.get_feature_names())
    return None

위 내용은 Python sklearn이 텍스트 데이터에서 기능 추출을 수행하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제