FileNotFoundError в Python во время анализа арабского текста - PullRequest
0 голосов
/ 13 декабря 2018

У меня в папке 150 текстовых файлов на арабском языке.Я хочу найти сходство между собой.Как мне это сделать?Я попробовал то, что объяснили здесь

from sklearn.feature_extraction.text import TfidfVectorizer

documents = [open(f) for f in text_files]
tfidf = TfidfVectorizer().fit_transform(documents)
# no need to normalize, since Vectorizer will return normalized tf-idf
pairwise_similarity = tfidf * tfidf.T

, но столкнулся с проблемой при объявлении документов.Я изменил это как:

from sklearn.feature_extraction.text import TfidfVectorizer

text_files= r"C:\Users\Nujou\Desktop\Master\thesis\corpora\modified Corpora\Training set\5K\ST"
for f in text_files:
    documents= open(f, 'r', encoding='utf-8-sig').read()
tfidf = TfidfVectorizer().fit_transform(documents)
# no need to normalize, since Vectorizer will return normalized tf-idf
pairwise_similarity = tfidf * tfidf.T

но появляется эта ошибка:

documents= open(f, 'r', encoding='utf-8-sig').read()
FileNotFoundError: [Errno 2] No such file or directory: 'C'

любое решение?

Редактировать:

Я пробовал это также:

from sklearn.feature_extraction.text import TfidfVectorizer

import os

text_files= os.listdir(r"C:\Users\Nujou\Desktop\Master\thesis\corpora\modified Corpora\Training set\5K\ST")

documents= []
for f in text_files:
    file= open(f, 'r', 'utf-8-sig')
    documents.append(file.read())
tfidf = TfidfVectorizer().fit_transform(documents)
# no need to normalize, since Vectorizer will return normalized tf-idf
pairwise_similarity = tfidf * tfidf.T

и произошла эта ошибка:

file= open(f, 'r', 'utf-8-sig')
TypeError: an integer is required (got type str)

1 Ответ

0 голосов
/ 13 декабря 2018

У вас нет проблем со сравнением арабских текстов.У вас проблемы с загрузкой документов в Python.

Если ST - это папка, вам необходимо получить список всех файлов в папке:

import os
inputDir = r'your/path/here'
text_files = os.listdir(inputDir)

documents = []
for f in text_files:
    file = open(os.path.join(inputDir, f), 'r', encoding = 'utf-8-sig')
    documents.append(file.read())

Текущая версияВаш код также сохраняет в цикле только последний документ, а не все.Однако это еще одна проблема для другого вопроса.

...