Pythonを使用したテキスト処理の基本


  1. テキストのクリーニング:

    • テキストから不要な要素(句読点、特殊文字、HTMLタグなど)を削除します。
    • 大文字と小文字の統一を行います。
    • ストップワード(一般的な単語や無意味な単語)を除去します。
    import re
    from nltk.corpus import stopwords
    def clean_text(text):
       text = re.sub(r'[^\w\s]', '', text)  # 句読点や特殊文字を削除
       text = text.lower()  # 小文字に統一
       stopwords = set(stopwords.words('english'))
       words = text.split()
       words = [word for word in words if word not in stopwords]  # ストップワードの除去
       cleaned_text = ' '.join(words)
       return cleaned_text
  2. テキストのトークン化:

    • テキストを単語や文のトークンに分割します。
    from nltk.tokenize import word_tokenize, sent_tokenize
    text = "This is a sample sentence. Another sentence."
    words = word_tokenize(text)  # 単語のトークン化
    sentences = sent_tokenize(text)  # 文のトークン化
    print(words)
    print(sentences)
  3. 単語の頻度カウント:

    • テキスト内の各単語の出現回数をカウントします。
    from collections import Counter
    text = "This is a sample text. Another text."
    words = text.split()
    word_counts = Counter(words)
    print(word_counts)
  4. テキストの類似度計算:

    • テキスト間の類似度を計算します。
    from sklearn.feature_extraction.text import TfidfVectorizer
    from sklearn.metrics.pairwise import cosine_similarity
    documents = [
       "This is the first document.",
       "This document is the second document.",
       "And this is the third one.",
       "Is this the first document?"
    ]
    vectorizer = TfidfVectorizer()
    tfidf_matrix = vectorizer.fit_transform(documents)
    similarity_matrix = cosine_similarity(tfidf_matrix, tfidf_matrix)
    print(similarity_matrix)

これらの例は、テキスト処理の基本的な手法として使用することができます。さまざまな応用では、さらに高度な手法やライブラリを利用することもありますが、まずはこれらの基本を理解して実践することから始めてみてください。