Pythonを使ったプログラミングはかなり新しいので、パンダのデータフレーム内のテキストのセグメントを言語で検出しようとしました。そこで、最初に「langdetect」パッケージの関数を作成しました
import pandas as pd
from langdetect import detect
def language_detect(x):
lang = detect(x)
print(lang)
2番目のステップは、処理のためにデータフレームをフィードすることです。検出が必要なすべてのセグメントは、データフレームの同じ列ヘッダーの下の別々の行にあります。
result = [language_detect(x) for x in df['column_name']]
df['l_detect'] = pd.append(result)
出力では、テキストが正しく認識されていることがわかります。しかし、結果を印刷しようとすると。すべてのエントリの値のみが返されます 'none'
だから私の質問は:
前もって感謝します。
問題はresult
、関数language_detect()
が何も返さないために空であるということです(結果を出力するだけです)。
import pandas as pd
from langdetect import detect
lst = [('this is a test', 1), ('what language is this?', 4), ('stackoverflow is a website', 23)]
df = pd.DataFrame(lst, columns = ['text', 'something'])
def language_detect(x):
lang = detect(x)
print(lang)
result = [language_detect(x) for x in df['text']]
result
#Output:[None, None, None]
戻り値を与えるだけです:
def language_detect(x):
lang = detect(x)
return lang
df['l_detect'] = df['text'].apply(language_detect)
df.head()
#Output:
# text something l_detect
#0 this is a test 1 en
#1 what language is this? 4 en
#2 stackoverflow is a website 23 en
そしてそれは期待通りに動作します。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加