С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

Конвертация из Python в C++ - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Программа выводит число и месяц по вводимому номеру порядкового дня: ошибка в программе http://www.cyberforum.ru/cpp-beginners/thread866512.html
Программа выводит число и месяц по вводимому номеру порядкового дня. Этот код программы со структурой! Программа вылетает, после того, как введешь номер порядкового дня. Помогите понять, что за...
C++ Сформировать банк данных кинологов Помогите пожалуйста. Нужно составить программу, которая обеспечивает ввод полученной информации для N владельцев собак, распечатку ее в виде таблицы, предварительно отсортировав по полю «ФИО... http://www.cyberforum.ru/cpp-beginners/thread866507.html
C++ rand от 1 до 16
Вопрос в том как в функции rand() на c++ задать диапазон чисел от 1 до 16
Конструктор и деструктор в связанном списке геометрических фигур C++
Нужно сделать практическую роботу по ООП - задание : Конструктор и деструктор в связанном списке геометрических фигур . Среда разработки на выбор(Visual C ++ / C # , DOS BOX ,C++ builder 6). ...
C++ Разработать алгоритм и программу для вычисления суммы ряда http://www.cyberforum.ru/cpp-beginners/thread866482.html
помогите написать программу по этой задаче: Вычислить и напечатать значения S=\sum_{k=1}^{\infty }\frac{k!}{2k}. Вычисление закончить, когда значение S станет не менее заданного числа M.
C++ Условный оператор. Вычислить и выести на экран значение функции F Доброй ночи. Помогите пожалуйста. Условный оператор. Вычислить и вывести на экран значение функции F. ax²+bx+c при a<0 и c≠0 -a/x-c при a>0 и c=0 ... подробнее

Показать сообщение отдельно
AlinaSka1993
0 / 0 / 0
Регистрация: 15.05.2013
Сообщений: 4

Конвертация из Python в C++ - C++

15.05.2013, 22:56. Просмотров 873. Ответов 0
Метки (Все метки)

Помогите переконвертировать следующие программы из python в c++:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
'''
Created on Aug 4, 2011
 
@author: alexpak <irokez@gmail.com>
'''
import config
import liblinearutil as svm
 
tagset = ['S', 'A', 'NUM', 'A-NUM', 'V', 'ADV', 'PRAEDIC', 'PARENTH', 'S-PRO', 'A-PRO', 'ADV-PRO', 'PRAEDIC-PRO', 'PR', 'CONJ', 'PART', 'INTJ', 'INIT', 'NONLEX']
tag_id = {}
tag_inv = {}
for i in range(0, len(tagset)):
    tag_id[tagset[i]] = i + 1
    tag_inv[i + 1] = tagset[i]
 
class Tagger:
    def __init__(self):
        self.chain_len = 3
        self._features = TaggerFeatures()
        pass
 
    def load(self, modelname, featuresname):
        self._svm_model = svm.load_model(modelname)
        self._features.load(open(featuresname, 'rb'))
 
    def save(self, modelname, featuresname):
        svm.save_model(modelname, self._svm_model)
        self._features.save(open(featuresname, 'wb'))
 
    def get_label_id(self, pos):
        return tag_id[pos] if pos in tag_id else 0
 
    def get_label(self, id):
        return tag_inv[id] if id in tag_inv else '?'
 
    def train(self, sentences, labels, cross_validation = False):
        x = []
        y = []
 
        for i in range(0, len(sentences)):
            sentence = sentences[i]
            prev = []
 
            j = 0
            for word in sentence:
                body = word.lower()
 
                featurespace = self._construct_featurespace(body, prev)
 
                prev.append((body, labels[i][j]))
                if len(prev) > self.chain_len:
                    del(prev[0])
 
                x.append(featurespace.featureset)
                j += 1
 
            y.extend(labels[i])
 
        prob = svm.problem(y, x)
 
        if cross_validation:
            param = svm.parameter('-c 1 -v 4 -s 4')
            svm.train(prob, param)
        else:
            param = svm.parameter('-c 1 -s 4')
            self._svm_model = svm.train(prob, param)
 
    def label(self, sentence):
        labeled = []
        prev = []
        for word in sentence:
            body = word.lower()
 
            featurespace = self._construct_featurespace(body, prev)
 
            p_label, _, _ = svm.predict([0], [featurespace.featureset], self._svm_model, '')
            label = p_label[0]
 
            prev.append((body, label))
            if len(prev) > self.chain_len:
                del(prev[0])
 
            labeled.append((word, label))
 
        return labeled
 
    def _construct_featurespace(self, word, prev):
        featurespace = ml.FeatureSpace()
 
        featurespace.add({1: len(word)}, 10)
        featurespace.add(self._features.from_suffix(word))
        featurespace.add(self._features.from_prefix(word))
        featurespace.add(self._features.from_body(word))
 
        for item in prev:
            featurespace.add({1: item[1]}, 100)
#           featurespace.add(features.from_suffix(item[0]))
#           featurespace.add(features.from_prefix(item[0]))
#           featurespace.add(features.from_body(item[0]))
 
        return featurespace
 
 
import pickle
import ml
class TaggerFeatures:
    def __init__(self):
        self._body_id = {}
        self._suffix_id = {}
        self._prefix_id = {}
 
        self._train = True
        self._featurespace = ml.FeatureSpace()
 
    def load(self, fp):
        (self._body_id, self._suffix_id, self._prefix_id) = pickle.load(fp)
        self._train = False
 
    def save(self, fp):
        pickle.dump((self._body_id, self._suffix_id, self._prefix_id), fp)
 
    def from_body(self, body):
        featureset = {}
        if self._train:
            if body not in self._body_id:
                self._body_id[body] = len(self._body_id) + 1
 
            featureset[self._body_id[body]] = 1
        else:
            if body in self._body_id:
                featureset[self._body_id[body]] = 1
 
        return featureset
 
    def from_suffix(self, body):
        featureset = {}
 
        suffix2 = body[-2:]
        if suffix2 not in self._suffix_id:
            self._suffix_id[suffix2] = len(self._suffix_id) + 1
        featureset[self._suffix_id[suffix2]] = 1
 
        suffix3 = body[-3:]
        if suffix3 not in self._suffix_id:
            self._suffix_id[suffix3] = len(self._suffix_id) + 1
        featureset[self._suffix_id[suffix3]] = 1
 
        return featureset
 
    def from_prefix(self, body):
        featureset = {}
 
        prefix2 = body[:2]
        if prefix2 not in self._prefix_id:
            self._prefix_id[prefix2] = len(self._prefix_id) + 1
        featureset[self._prefix_id[prefix2]] = 1
 
        prefix3 = body[:3]
        if prefix3 not in self._prefix_id:
            self._prefix_id[prefix3] = len(self._prefix_id) + 1
        featureset[self._prefix_id[prefix3]] = 1
 
        return featureset
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.