удаление стоп-слов с помощью Python - PullRequest
0 голосов
/ 22 февраля 2012

Все,

У меня есть текст, который мне нужно очистить, и у меня есть небольшой алгоритм, который "в основном" работает.

def removeStopwords(self, data):
    with open(r'stopwords.txt') as stopwords:
        wordList = []
        for i in stopwords:
            wordList.append(i.strip())
        charList = list(data)
        cat = ''.join(char for char in charList if not char in wordList).split()
        return ' '.join(cat)

Возьмите первую строку на этой странице.http://en.wikipedia.org/wiki/Paragraph и удалите все символы, которые нам не интересны, в данном случае это все не алфавитно-цифровые символы.

Абзац (от греческого paragraphhos, «писать рядом» или «написано рядом») - это отдельная единица дискурса в письме, касающегося определенного момента или идеи.Абзац состоит из одного или нескольких предложений. [1] [2]Начало абзаца указывается в начале новой строки.Иногда первая строка с отступом.В разное время начало абзаца указывалось пилигроем: *.

Вывод выглядит довольно хорошо, за исключением того, что некоторые слова неправильно объединены, и я не уверен, как это исправить.

Абзац из греческого параграфа, который пишется рядом или написан рядом, представляет собой самостоятельную единицу

Обратите внимание, что слово «автономный» было «автономным».

РЕДАКТИРОВАТЬ: Содержимое файла стоп-слов, который представляет собой просто набор символов.

!$% ^, & * () {} [] <</p>

,./ |\?~ `:;"

Оказывается, мне вообще не нужен список слов, потому что я действительно пытался удалить символы, которые в данном случае были знаками препинания.

        cat = ''.join(data.translate(None, string.punctuation)).split()
        print ' '.join(cat).lower()

Ответы [ 3 ]

2 голосов
/ 22 февраля 2012

версия 2.x

line = 'hello!'
line.translate(None, '!$%') #'hello'

ответы

1 голос
/ 23 февраля 2012

Загрузка ваших стоп-слов / стопчаров в отдельную функцию.

Не кодируйте имена файлов / пути.

Ваш список слов должен быть set, а не списком.

Однако, если вы работаете с символами,не слова, исследуй ул.транслят.

0 голосов
/ 22 февраля 2012

Один из способов - использовать метод замены и получить полный список символов, которые вам не нужны.

например:

c=['a','h']
a= 'john'
for item in c:
    a =a.replace(item,'')
    print a

печатает следующее: Джон Jon

...