Заморозьте заголовок TH и прокрутку данных

Поскольку выводится Model not present, run train.py first, мы знаем, что IOError было поднято внутри predict, но предложение except просто вызывает print, что означает, что predict вернет None.

Затем вы делаете predict([sys.argv[1]]) * 100), что означает, что вы пытаетесь сделать None * 100 (как предполагает трассировка стека), что не имеет никакого смысла.

Есть несколько способов исправить это, например, позволить распространению исключения:

def predict(headline):
    f = open('trained_model')
    clf = pickle.load(f)
    f = open('vectorizer')
    vectorizer = pickle.load(f)
    return clf.predict_proba(vectorizer.transform(headline))[0][1]

if __name__ == "__main__":
    try:
        print ("headline is "  + str(int(predict([sys.argv[1]])*100)) + "% likely to be clickbait")
    except IOError:
        print("Model not present, run train.py first")

или проверить, является ли его возвращаемое значение None, прежде чем его использовать:

if __name__ == "__main__":
    predict_result = predict([sys.argv[1]])
    if predict_result is not None:
        print ("headline is "  + str(int(predict_result * 100)) + "% likely to be clickbait")
6
задан Bigballs 13 March 2009 в 15:46
поделиться

8 ответов

Мое решение состоит в том, чтобы использовать две таблицы и зафиксировать ширину столбцов. Более низкая таблица находится в отделении с возможностью прокрутки и не имеет никакого заголовка.

2
ответ дан 17 December 2019 в 00:15
поделиться

Если Вы относитесь к Доступности серьезно, две таблицы не способ пойти, так как это нарушает правила.

Существуют способы сделать это в чистом CSS, но это - головная боль, чтобы заставить это работать во всех браузерах. Существует несколько примеров в сети, но они все не работают 100% с IE без тонких настроек.

Я в настоящее время работаю над CSS только версия, это становится достаточно близким: http://www.coderanch.com/t/431995/HTML-JavaScript/Table-with-fixed-header-scolling#1918825

Еще не работает в IE8rc1, IE6/7 имеет пограничный вопрос, и необходимо жить с полосой прокрутки, выглядящей по-другому в FF по сравнению с IE.

2
ответ дан 17 December 2019 в 00:15
поделиться

Я сделал это в прошлом использовании CSS путем определения a height для <TBODY> наклейте мою таблицу и использование overflow:auto. Это было только что, и я думаю, что были некоторые проблемы совместимости. Я не помню точно, каковы они были, но это решение может работать на Вашу проблему.

0
ответ дан 17 December 2019 в 00:15
поделиться

С FireFox можно поместить стиль = "высота: 200 пкс; переполнение-y: автоматический", Но иметь чистую версию CSS, совместимую со всеми главными браузерами, я имею, используют этот пример, так как IE не поддерживает syles в tbody или thead.

2
ответ дан 17 December 2019 в 00:15
поделиться

лучшее решение (то, которое масштабируется с большим количеством данных) состоит в том, чтобы использовать 2 таблицы как сказанный aaron, главный стол имеет заголовки, и нижняя таблица должна иметь заголовки как последнюю строку (или нижний колонтитул), но с непрозрачностью 0, так, чтобы Вы не видели их.

Это заголовки внизу заставляет нижнюю таблицу иметь ту же ширину столбцов как главный стол, составляя вещи строка. удостоверьтесь, что Вы разрабатываете и заголовок и нижний колонтитул то же.

необходимо будет также создать отдельную полосу прокрутки для вертикальной прокрутки направо от таблицы, потому что иначе полоса прокрутки испортит ширины. добавьте слушателя события прокрутки, чтобы установить scrolltop таблицы к scrolltop полосы прокрутки и изменить размер полосы прокрутки, чтобы быть той же высотой как таблица.

его довольно легкое, на самом деле =)

0
ответ дан 17 December 2019 в 00:15
поделиться

Составьте единственную таблицу, как Вы обычно были бы для встречи проблем доступности. Динамично составьте новую таблицу на основе thead использование jQuery (скопируйте thead), и введите его в страницу выше первой таблицы и дайте ему фиксированную позицию. Это должно остаться на месте, в то время как остальная часть прокруток таблицы, но это будет все еще оставаться доступным и работать с отключенным JavaScript.

0
ответ дан 17 December 2019 в 00:15
поделиться

I have come up with a solution that sort of combines two previously mentioned ones. It uses jQuery and two tables , one for the header and one for the content. The header table is set to a width of 100% with no column widths set. At the bottom of the content table there is a row defined to match the header table with the column widths set. This row is hidden so that it is not shown, but retains the column widths.

For this example I gave my header row an ID of 'Header1' and the bottom row and ID of 'Header2'. Also I wrapped the content table inside a div with an ID of 'scrollTable'.

I set styles in my CSS file for the scrollTable ID, see below:

    #scrollTable {
 height:250px;
 overflow-x:hidden;
 overflow-y:scroll;
    }

Now for the jQuery part. Basically what I'm doing here is taking the widths of the bottom row columns and setting the header columns to match. I stretch the width of the last column of the header so that it fits over the top of the scroll bar. See code below:

   $(document).ready(function(){
 var maxWidth = $('#Header1').width();    // Get max row Width
 $('#Header2 th').each(function(i) {     // Set col headers widths to to match col widths 
      var width = $(this).width();
      $('#Header1 th').eq(i).width(width);
 });

 var blankSpace = maxWidth - $('#Header1').width();               // Calculate extra space
 $('#Header1 th:last').width( $('#Header1 th:last').width() + blankSpace );  // Stretch last header column to fill remaining space

});

I have tested this successfully on IE 6, 7 & 8, Firefox 3.0.1.4, Chrome 3.0.195.25, Opera 10, and Safari 3.2.2 on Windows XP.

1
ответ дан 17 December 2019 в 00:15
поделиться

Вы пробовали этот плагин из JQuery? http://plugins.jquery.com/project/floatobject Я считаю, что это то, что вы хотите. Посмотрите демонстрацию @ http://amirharel.com/labs/fo/float_demo.html Ура!

0
ответ дан 17 December 2019 в 00:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: